R:拆分字符列并创建两个新的

时间:2018-08-10 22:57:49

标签: r dataframe character na comma

R个用户

我有一个与此相似的数据框:

a <- c("John, 3 years") 
b <- c("Mokobe, 11 years")
c <- c("Ivan")
df <- rbind(a,b,c)
df
  [,1]              
a "John, 3 years"   
b "Mokobe, 11 years"
c "Ivan" 

我应该使用哪个函数在逗号后拆分列以获取:

df
[,1]    [,2]
John    3 years
Mokobe  11 years
Ivan    NA

4 个答案:

答案 0 :(得分:3)

我们可以通过定界符strsplit来创建,,然后在最后填充rbind之后listNA个元素{{1} }}对于每个length元素都是相同的

list

答案 1 :(得分:2)

使用潮汐库:

library(tidyr)
df <- as.data.frame(rbind(a,b,c), stringsAsFactors=F)
separate(df, V1, c("name", "age"),sep = ",")

答案 2 :(得分:2)

只需read.csvfill=TRUEheader=FALSE直接读取数据即可。您可以决定通过as.matrix()

将其更改为矩阵
    read.csv(text=df,fill=T,header=F,na.strings = "")
      V1        V2
1   John   3 years
2 Mokobe  11 years
3   Ivan      <NA>   

转到矩阵。虽然不是必需的

as.matrix(read.csv(text=df,fill=1,h=0,na.strings = ""))
     V1       V2         
[1,] "John"   " 3 years" 
[2,] "Mokobe" " 11 years"
[3,] "Ivan"   NA   

答案 3 :(得分:1)

# This should work
library(stringr)

a <- c("John, 3 years") 
b <- c("Mokobe, 11 years")
c <- c("Ivan")
df<- rbind(a,b,c)

df<- str_split_fixed(df, ",", 2)