将字符串拆分为长数据帧格式的值
Split Strings into values in long dataframe format
我有一个类似于以下示例的数据框 df
,其中包含一个字符变量 VAR
.
df<-data.frame(ID = 1:2,
VAR = c("VAL1\r\nVAL2\r\nVAL8","VAL2\r\nVAL5"),
stringsAsFactors = FALSE)
# ID VAR
# 1 1 VAL1\r\nVAL2\r\nVAL8
# 2 2 VAL2\r\nVAL5
我想用 return 回车符 - 换行符 \r\n
拆分字符变量,并在下面获得所需的数据帧:
# ID VAR
# 1 1 VAL1
# 2 1 VAL2
# 3 1 VAL8
# 4 2 VAL2
# 5 2 VAL5
我写了如下代码,但在尝试将数据帧的格式更改为长格式时,不知何故在 gather
函数中迷路了。
library(tidyverse)
df <- df %>%
bind_cols(as.data.frame(str_split(df$VAR,"\r\n",simplify = TRUE))) %>%
select(-VAR) %>%
gather(key,value)
请指教
我们可以用 separate_rows
library(tidyr)
separate_rows(df, VAR, sep='\s+')
我有一个类似于以下示例的数据框 df
,其中包含一个字符变量 VAR
.
df<-data.frame(ID = 1:2,
VAR = c("VAL1\r\nVAL2\r\nVAL8","VAL2\r\nVAL5"),
stringsAsFactors = FALSE)
# ID VAR
# 1 1 VAL1\r\nVAL2\r\nVAL8
# 2 2 VAL2\r\nVAL5
我想用 return 回车符 - 换行符 \r\n
拆分字符变量,并在下面获得所需的数据帧:
# ID VAR
# 1 1 VAL1
# 2 1 VAL2
# 3 1 VAL8
# 4 2 VAL2
# 5 2 VAL5
我写了如下代码,但在尝试将数据帧的格式更改为长格式时,不知何故在 gather
函数中迷路了。
library(tidyverse)
df <- df %>%
bind_cols(as.data.frame(str_split(df$VAR,"\r\n",simplify = TRUE))) %>%
select(-VAR) %>%
gather(key,value)
请指教
我们可以用 separate_rows
library(tidyr)
separate_rows(df, VAR, sep='\s+')