在R中:按行连接向量元素,将向量行转换为字符串
在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" 是否有一种按行连接项目的简单方法?是的,有。它被称为“应用”;-) 请参见“应用”和“粘贴”在“粘贴”上快速浏览后,很明显,对于给定的示例不需要
> 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"