小编mil*_*ske的帖子

R - 按组将数据转换和转置为列

在通过尝试 tidyr、reshape、spread 等努力解决这个挑战几个小时后,我将非常感谢 R 专家的帮助。

对于具有不同组和分配值的数据框,有没有办法转换和转置数据框,以便将每个组分配给一个新列,并且所有分配的值都列在该组下?

以下是数据框的一些示例代码:

a <- c("Group1", "Group1", "Group1", "Group2", "Group2", "Group2", "Group2", "Group2", "Group3")
b <- c("Item1", "Item2", "Item3", "Item4", "Item5", "Item6", "Item7", "Item8", "Item9") 
Run Code Online (Sandbox Code Playgroud)

使用这两列,为每个组创建一个新列。

下面,我手动展示了这一点,但需要 R 来自动化下一步。

我手动包含“--”以避免错误“data.frame 中的错误:参数意味着不同的行数”。实际上,我无法为每个组添加“--”。

Group1 <- c("Item1", "Item2", "Item3", "--", "--")
Group2 <- c("Item4", "Item5", "Item6", "Item7", "Item8")
Group3 <- c("Item9", "--", "--", "--", "--")
Run Code Online (Sandbox Code Playgroud)

下面,这是我试图创建的输出。

table <- data.frame(Group1, Group2, Group3)
Run Code Online (Sandbox Code Playgroud)

挑战在于变量必须是动态的。对于不同的数据集,组数和项目数会发生变化,我无法手动为每个组中的空白设置“--”。

这个问题与这个问题相似,除了我的问题涉及动态范围。 将数据框公共行转换为列

r reshape reshape2

0
推荐指数
1
解决办法
1992
查看次数

标签 统计

r ×1

reshape ×1

reshape2 ×1