【发布时间】:2017-08-28 19:32:24
【问题描述】:
我对 R 很陌生。
我有一个包含大约 300 列的原始数据集。列名类似于: “书封面图片”、“书封面标题”、“书封面作者”、“书封面”、“书名”、“作者”、“防尘套简介”、“防尘套作者”、“防尘套”摘要”、“书前摘要”、“书后评论”、“价格”
我想将本书封面上的所有文本连接到一个名为“Cover”的新列中。以后可以添加新列,我希望它可以自动化。我想出了如何让 grep 输出哪些列中包含“Cover”一词,但我不知道如何将它们连接在一起。
cdf<- names(rawdata) #column name data frame
cols<-grep("Cover",cdf) #returns column numbers that have the word Cover in them.
paste(rawdata[c(cols)],sep=" ")
这里的很多主题都谈到了使用粘贴,但我似乎无法正确理解语法。这很可能是我的一些基本误解,但我感谢您提供的任何和所有帮助。
【问题讨论】:
-
试试
do.call(paste,rawdata[cols])。 -
好吧,在 nicola 的建议中使用
paste而不是paste0,因为您希望它们之间有一个空格 -
效果很好,非常感谢!我会阅读 do.call 以便了解它是如何工作的。并感谢 Gregor 捕捉 paste0 与 paste!
-
你快到了。
do.call是在任意数量的参数上调用函数的便捷方式。
标签: r