我有一个这样的数据帧,它继续可变长度(偶数列号):
V1 V2 V3 V4 V5 V6
A B C D E F
我希望数据帧的前半部分与数据帧的后半部分成对。 (在上述情况下,将是AD,BE和CF之类的对。)
我是从另一篇帖子中摘录的,但是我无法从中制作出一个数据框。
lapply(1:(ncol(df)/2), function(x) paste(df[,c(x,x+(ncol(df)/2))], collapse = "")) %>%
data.frame
有人可以解释这段代码中实际发生了什么吗?
答案 0 :(得分:0)
我不确定您要面对的是什么问题,但是我可能会遇到两个问题。首先是您的角色变量实际上是因素。在这种情况下,您将获得基础索引而不是字符。第二个潜在问题可能是在paste
函数中。这样写可以给我正确的结果。您将必须使用rename_all
中的dplyr
才能使变量名称可用。
lapply(1:(ncol(df)/2), function(x) paste0(df[[x]], df[[x + ncol(df) / 2]])) %>% data.frame
现在这是怎么回事:
假设您将始终拥有偶数列,我们将其除以2,然后针对每个列索引,应用paste0
函数。 paste0
是paste(..., sep = '')
的简单包装。我们将粘贴x列和x +列数的一半。在我更新的代码中,我使用[[]]
,因为这将返回字符向量。