【发布时间】:2016-04-28 11:38:10
【问题描述】:
我在 R 中遇到了一个关于使用通配符连接数据框列的特定问题。也许我搜索错误。但是我还没有找到匹配的答案。
这是我的问题: 我有一个数据框 df ,其中每一列代表一个用户(U1,U2,U3),例如:
> df <-data.frame(U1=1:3, U2=4:6, U3=7:9)
> df
> U1 U2 U3
1 1 4 7
2 2 5 8
3 3 6 9
我想将所有用户的值连接到一个向量中,就像使用 c() 函数一样,例如:
> c(df$U1, df$U2, df$U3)
[1] 1 2 3 4 5 6 7 8 9
但是,我的用户数量很大,并且随着时间的推移而变化。因此,我寻找一种优雅的动态方式来连接列,例如
> c(df$U*)
不幸的是,这似乎不起作用。我玩弄了 grep 和正则表达式,但无法让它工作。当然,我可以使用 for 循环并编写自己的 cat 函数,但我认为有更好的方法。我只是没找到。也许我只是个盲人。希望你能帮忙。
【问题讨论】:
-
您想连接所有列还是仅连接一些列?即以 U?? 开头的列
-
也许只是取消列出数据。
unlist(df[grepl("^U", names(df))], use.names = FALSE).
标签: regex r vector dataframe concat