![](/img/trans.png)
[英]How to create a new column keeping the non repeated character on the previous ones in R?
[英]R: Split character column and create two new ones
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
我们可以通过定界符进行strsplit
,
然后在末尾用NA
填充后rbind
list
元素,以使每个list
元素的length
相同
lst <- strsplit(df[,1], ", ")
do.call(rbind, lapply(lst, `length<-`, max(lengths(lst))))
# [,1] [,2]
#a "John" "3 years"
#b "Mokobe" "11 years"
#c "Ivan" NA
与提迪尔图书馆:
library(tidyr)
df <- as.data.frame(rbind(a,b,c), stringsAsFactors=F)
separate(df, V1, c("name", "age"),sep = ",")
只需通过read.csv
使用fill=TRUE
和header=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
# 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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.