【发布时间】:2021-05-28 14:28:56
【问题描述】:
我是 R 新手,在这个问题上已经有好几个小时了。我似乎无法在网上找到正确的答案,因此转向你们。我见过的其他 posts 使用 3 列而不是 2 列。
我有一个包含两列的 df:(公司)名称和 ID。 例子df:
Name id
1 NameA 111
2 NameB 222
3 NameC 111
4 NameD 444
5 NameA 555
我想将此列转换为双模式(发生率)矩阵,其中行名是公司名称,列名是 id 号。期望结果示例:
111 222 333 444 555
1 NameA 1 0 0 0 1
2 NameB 0 1 0 0 0
3 NameC 1 0 0 0 0
4 NameD 0 0 0 1 0
我尝试了多种形式的 as.matrix 和 data.matrix,但它没有给我正确的格式。也许我做错了。有人可以帮我吗?
(作为奖励:如果可能的话,我想接下来将这两个模式矩阵变成一个模式矩阵。如果有人也知道如何做到这一点,我将永远感激不尽。)
dput 格式的数据
df1 <-
structure(list(Name = c("NameA", "NameB", "NameC",
"NameD", "NameA"), id = c(111L, 222L, 111L, 444L, 555L)),
class = "data.frame", row.names = c("1", "2", "3", "4", "5"))
【问题讨论】:
-
请将您的数据提供为代码,而不是格式化表格。
-
您可以使用 dput(your_dataframe),并将输出粘贴到您的问题中
-
试试
xtabs(~., df1)或table(df1)。 -
这个问题与RStudio无关。请使用准确的主题。