【发布时间】:2017-12-08 21:48:49
【问题描述】:
我有一个类似于以下示例 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)
请指教。
【问题讨论】:
-
@Sotos 这是链接的副本吗?
-
@akrun 不是吗?如果我这样做
cSplit(df, "VAR", "\r\n", "long")这是链接欺骗中的答案,我会得到预期的结果 -
我的意思是 sep 不一样。
-
哦,当然。数据框也称为
mydf,而不是df。最好也就此提出一个新问题。
标签: r dplyr data-manipulation stringr tidyverse