【发布时间】:2017-12-21 00:07:24
【问题描述】:
我在数据框中有一列,其中每条记录都是一个名称列表。
例如约翰·史密斯、简·史密斯、乔·史密斯、朱迪·史密斯等……
我想删除除整个列的名字之外的所有内容,基本上从第一个逗号开始,所以我的列将只有一个名称。
例如约翰·史密斯
我尝试过使用 sub、gsub、regex,但我迷路了。我大约两天前才开始使用 R,并且在遇到这个障碍之前做得很好。
任何帮助表示赞赏。
【问题讨论】:
-
所以您希望列中的其余条目为 NA?示例:姓名、年龄 John Smith、25 NA、30 NA、40 ...
-
我认为 Brian 的意思是每条记录(行)包含多个名称,他希望每行保留第一个。
-
哦,好吧。这更有意义:)
-
既然你从 R 开始,我会问额外的问题:你真的希望这个数据框有一个列,每个条目都是一个以逗号分隔的名称的字符串吗?或者,也许您正在从文件中读取 data.frame,并且它应该是每列一个名称?我问以防万一……
-
sapply(strsplit(df$name, ","), function(x) x[[1]])或更方便的sapply(strsplit(df$name, ","),[[, 1)