【发布时间】:2010-11-24 05:31:58
【问题描述】:
我可以使用循环来解决这个问题,但我正在尝试用向量来思考,所以我的代码会更加 R 风格。
我有一个名字列表。格式为名字_姓氏。我想从这个列表中取出一个只有名字的单独列表。我似乎无法弄清楚如何做到这一点。以下是一些示例数据:
t <- c("bob_smith","mary_jane","jose_chung","michael_marx","charlie_ivan")
tsplit <- strsplit(t,"_")
看起来像这样:
> tsplit
[[1]]
[1] "bob" "smith"
[[2]]
[1] "mary" "jane"
[[3]]
[1] "jose" "chung"
[[4]]
[1] "michael" "marx"
[[5]]
[1] "charlie" "ivan"
我可以使用这样的循环得到我想要的:
for (i in 1:length(tsplit)){
if (i==1) {t_out <- tsplit[[i]][1]} else{t_out <- append(t_out, tsplit[[i]][1])}
}
这会给我这个:
t_out
[1] "bob" "mary" "jose" "michael" "charlie"
那么我怎样才能在没有循环的情况下做到这一点?
【问题讨论】:
-
顺便说一句,如果您能详细说明这与您之前关于同一主题的问题有何不同,这可能会有所帮助:stackoverflow.com/questions/439526/thinking-in-vectors-with-rstackoverflow.com/questions/1246244/…stackoverflow.com/questions/445059/…
-
你的意思是我完全无法真正学习如何在 R 中应用函数?是的,同样的问题,不同的细微差别。谢谢你提醒我。