现在,我有相同的输入 Dataframe :
AAA <- c('APIS', 'APIS', 'PIPIS', 'AGAROS', 'AGAROS', 'AGAROS', 'NOTHING')
BBB <- c('a', 'a', 'a', 'b', 'b', 'c', NA)
CCC <- c(1, 2, NA, 4, 5, 6, 7)
DDD <- c("Mat", "ASG", "MNT", "NBEH", "DJ", "EU", "DHR")
test.data <- data.frame(AAA, BBB, CCC, DDD)
test.data
我想重塑它,使每个唯一的“AAA”变量变成单行。“AAA”变量的多个条目自动成为新列,后缀或前缀为1、2、3.....就像这样:
AAA <- c('APIS', 'PIPIS', 'AGAROS', 'NOTHING')
BBB_1 <- c('a', 'a', 'b', NA)
CCC_1 <- c(1, NA, 4, 7)
DDD_1 <- c("Mat", "MNT", "NBEH", "DHR")
BBB_2 <- c('a', NA, 'b', NA)
CCC_2 <- c(2, NA, 5, NA)
DDD_2 <- c("ASG", NA, "DJ", NA)
BBB_3 <- c(NA, NA, 'c', NA)
CCC_3 <- c(NA, NA, 6, NA)
DDD_3 <- c(NA, NA, "EU", NA)
output <- data.frame(AAA, BBB_1, CCC_1, DDD_1, BBB_2, CCC_2, DDD_2,
BBB_3, CCC_3, DDD_3)
output
我已经看过熔化和铸造和其他一些东西,但似乎没有做的工作。
2条答案
按热度按时间dtcbnfnu1#
您可以为
AAA
的每个唯一值创建一个唯一的行号,然后转换为宽格式。使用
data.table
-nwwlzxa72#
碱R溶液: