[英]Combine similar columns with different character names data?
ID <- c("IDa", "IDb","IDc","IDe","IDd","IDe")
names1 <- c("robin", "bob", "eric", "charlie", "robin", "gabby")
matrix1 <- matrix(names1, 1, 6)
colnames(matrix1) <- c("IDa", "IDb", "IDc","IDe", "IDd", "IDe")
这是 output:
伊达 | IDb | IDc | IDe | IDd | IDe |
---|---|---|---|---|---|
知更鸟 | 鲍勃 | 埃里克 | 查理 | 知更鸟 | 饶舌的 |
但我希望它看起来像这样:
伊达 | IDb | IDc | IDe | IDd |
---|---|---|---|---|
知更鸟 | 鲍勃 | 埃里克 | 查理 | 知更鸟 |
饶舌的 |
我们可以在用NA
填充后split
然后cbind
lst1 <- split(names, ID)
do.call(cbind, lapply(lst1, `length<-`, max(lengths(lst1))))
-输出
IDa IDb IDc IDd IDe
[1,] "robin" "bob" "eric" "robin" "charlie"
[2,] NA NA NA NA "gabby"
另外的选择:
library(reshape2)
library(tidyverse)
melt(matrix1) %>%
select(-Var1) %>%
group_by(Var2) %>%
mutate(id = row_number()) %>%
pivot_wider(
names_from = Var2,
values_from = value
) %>%
select(-id)
IDa IDb IDc IDe IDd
<chr> <chr> <chr> <chr> <chr>
1 robin bob eric charlie robin
2 NA NA NA gabby NA
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.