如何用逗号分割字符串向量并在R统计编程中转换为数据帧

时间:2018-05-15 12:56:25

标签: r string dataframe

我在R中有一个像这样的字符串向量      C(' A,B,C,d'' C,d,E'' d,C'' A,B,d& #39) 我必须将它转换为数据框,如下所示。 请注意,字符串可能会有不同的长度。所以在d&之后的第3行c第3栏和第3栏下应该有空白。 4

a b c d
c d e   
d c     
a b d   

3 个答案:

答案 0 :(得分:3)

我们将,拆分为list,在末尾添加NA,以便那些元素较少并转换为data.frame

lst <- strsplit(v1, ",")
out <- do.call(rbind.data.frame, lapply(lst, `length<-`, max(lengths(lst))))
colnames(out) <- paste0("V", seq_along(out))
out <- sapply(out, as.character)
out[is.na(out)] <- ""
out

答案 1 :(得分:2)

在最后的注释中使用测试输入。

read.table(text = x, sep = ",", fill = TRUE, as.is = TRUE)

,并提供:

  V1 V2 V3 V4
1  a  b  c  d
2  c  d  e   
3  d  c      
4  a  b  d   

注意

测试输入

x <- c('a,b,c,d','c,d,e','d,c','a,b,d')

答案 2 :(得分:0)

非常简单。使用以下

test <- c('a,b,c,d','c,d,e','d,c','a,b,d')
data_frame <- data.frame(test)
data_frame