在R中:按行连接向量元素,将向量行转换为字符串

在R中:按行连接向量元素,将向量行转换为字符串,r,R,在R中是否有一个“按行”操作来将向量中的每一行转换为字符串 > d= cbind("Data", c("2", "73")) > d [,1] [,2] [1,] "Data" "2" [2,] "Data" "73" 我想要的是像这样的字符串 [,1] [1,] "Data 2" [2,] "Data 73" 是否有一种按行连接项目的简单方法?是的,有。它被称为“应用”;-) 请参见“应用”和“粘贴”在“粘贴”上快速浏览后,很明显,对于给定的示例不需要

在R中是否有一个“按行”操作来将向量中的每一行转换为字符串

> d= cbind("Data", c("2", "73"))
> d
     [,1]   [,2]
[1,] "Data" "2" 
[2,] "Data" "73"
我想要的是像这样的字符串

     [,1]
[1,] "Data 2"
[2,] "Data 73"

是否有一种按行连接项目的简单方法?

是的,有。它被称为“应用”;-)


请参见
“应用”
“粘贴”

“粘贴”
上快速浏览后,很明显,对于给定的示例不需要
应用。不过,如果有多个专栏的话,这会很方便

> paste(d[,1],d[,2])
[1] "Data 2"  "Data 73"

无需求助于
?应用的一般方法:

do.call(paste, as.data.frame(d))
[1] "Data 2"  "Data 73"
其中,
as.data.frame
用于避免下标

编辑:


do.call
是一个函数,它将另一个函数作为第一个参数,列表作为第二个参数。它通常用于向函数发送参数列表(在我们的例子中,是
d
paste()
的列)。我们将d作为data.frame(一种列表类型)发送,以使此技巧发挥作用。

blarg,当然是apply,duh:(但粘贴,collapse=“”部分我永远不会理解,谢谢:)@gakera:理解
collapse=“”
如果您阅读文档
?粘贴
,则该部分非常简单。帮助中没有任何使用collapse=”“的示例,至少在我的版本中没有。但从文本中可以清楚地看出,一旦你在所有的噪音中看到它,它的作用是什么。@gakera:tss-tss-tss。。。这不是噪音,实际上是非常有价值的信息。在某一点上,你会对“噪音”感到非常高兴。呵呵,我喜欢人们捍卫R帮助的速度有多快,就像每个人的孩子一样。非常好,我感谢所有能得到的帮助。是的,所以有一个很好的声誉,是一个很好的地方,得到一个快速的答案,并提供通常没有失败。说到这类事情,我并不为有点懒而感到羞耻。我让您定义“little”的含义,我相信您会喜欢它。但是我需要一种通用的方法,它可以在不明确指定行的情况下工作。很抱歉,我对此不够清楚,但是apply方法对于我需要做的事情非常有效。这是真的。如果数据已经是data.frame,效率提高会更大,但是
apply()
解决方案对于向量来说要快得多。这种方法的优点是,在应用粘贴时不需要将自己限制为单一数据类型,但也有许多缺点:例如,按行而不是按列粘贴只需要在
apply()
解决方案中更改数字,而这种方法需要对代码进行重大更改。总的来说,这个解决方案只适用于我的典型用例,在这些用例中,我使用
expand.grid()
创建了索引,并将它们与
do.call(paste)
do.call(paste, as.data.frame(d))
[1] "Data 2"  "Data 73"