将字符串拆分为长数据帧格式的值

时间:2017-07-05 09:45:24

标签: r dplyr data-manipulation stringr tidyverse

我的数据框看起来像以下示例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

我想通过返回工具拆分字符变量 - 换行符\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)

请告知。

1 个答案:

答案 0 :(得分:0)

我们可以使用separate_rows

执行此操作
library(tidyr)
separate_rows(df, VAR, sep='\\s+')