我在R中有一列用逗号分隔的名字。
例如:
John, Doe
Rebecca, Homes
我想将名字和姓氏分成不同的列。
我遇到的另一个问题是,有时会有一个没有逗号的名称。例如:
John, Doe
Rebecca, Homes
Organization LLC
我看过使用strsplit(a,“,”),但是我在strsplit(wn,“,”)中得到以下错误错误:非字符参数。
以下是Stack Convert comma separated entry to columns
中的示例任何有关解决这个简单问题的帮助都将不胜感激。感谢。
答案 0 :(得分:1)
分2步:
read.table
使用fill=TRUE
来阅读所有行(您也可以使用readLines)代码是这样的:
aa <- read.table(text='John, Doe
Rebecca, Homes
Organization LLC',sep=',',fill=TRUE,colClasses='character')
## treat lines without comma
aa[nchar(aa$V2) ==0,] <-
do.call(rbind,strsplit(aa[nchar(aa$V2) ==0,]$V1,' ')) ## space as separator :I assume you
don't have compound name
> aa
V1 V2
1 John Doe
2 Rebecca Homes
3 Organization LLC
编辑更好的方法:我使用reglar表达式用逗号替换任何空格以使用常规分隔符。我假设你没有任何复合名称。
ff <- readLines(textConnection('John, Doe
Rebecca, Homes
Organization LLC'))
do.call(rbind,
strsplit(gsub('[ ]|, |,[ ]',',',ff),','))