Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在for循环中合并列?_R_For Loop_Paste - Fatal编程技术网

如何在for循环中合并列?

如何在for循环中合并列?,r,for-loop,paste,R,For Loop,Paste,我有一个小问题,当尝试使用“粘贴”组合列时,我组合了for循环的第一列和最后一个结果。告诉我如何组合for循环的所有结果,而不仅仅是最后一个 if(i==1 | j==2){ common.res <- data.table(res[,3]) f <- data.table(paste(common.res1[,1],common.res[,])) } if(i==1 | j==2){ comm

我有一个小问题,当尝试使用“粘贴”组合列时,我组合了for循环的第一列和最后一个结果。告诉我如何组合for循环的所有结果,而不仅仅是最后一个

if(i==1 | j==2){
                common.res <- data.table(res[,3])
                f <- data.table(paste(common.res1[,1],common.res[,]))
            }
if(i==1 | j==2){

common.res您可以使用
tidyr::unite()
在不使用for循环的情况下执行此操作:

这将把
res
中的所有列粘贴在一起,并在每个元素之间留出一个空格。如果您想指定要在其上执行此操作的特定列,可以改为说:

res %>% unite(col = 'name_for_new_col', x1:x3, sep = ' ')
如果还想保留旧列,可以在
unite()
中指定
remove=FALSE


或者,您可以在基本R中使用
apply
paste

library(tidyr)

res %>% unite(col = 'name_for_new_col', sep = ' ')
res2 <- as.data.frame(apply(res, 1, paste, collapse = ' '))
names(res2)[1] <- 'nicer.name' #rename the single column

您可以使用
tidyr::unite()
在没有for循环的情况下执行此操作:

这将把
res
中的所有列粘贴在一起,并在每个元素之间留出一个空格。如果您想指定要在其上执行此操作的特定列,可以改为说:

res %>% unite(col = 'name_for_new_col', x1:x3, sep = ' ')
如果还想保留旧列,可以在
unite()
中指定
remove=FALSE


或者,您可以在基本R中使用
apply
paste

library(tidyr)

res %>% unite(col = 'name_for_new_col', sep = ' ')
res2 <- as.data.frame(apply(res, 1, paste, collapse = ' '))
names(res2)[1] <- 'nicer.name' #rename the single column
do.call(粘贴,您的数据表)
do.call(粘贴,您的数据表)