我正在尝试使用一个软件包,其中他们使用的表具有某种格式,我对R还是很陌生,不知道如何以相同的格式获取数据才能使用该软件包。 他们的桌子看起来像这样:
Recipient
Actor 1 10 11 12 2 3 4 5 6 7 8 9
1 0 0 0 1 3 1 1 2 3 0 2 6
10 1 0 0 1 0 0 0 0 0 0 0 0
11 13 5 0 5 3 8 0 1 3 2 2 9
12 0 0 2 0 1 1 1 3 1 1 3 0
2 0 0 2 0 0 1 0 0 0 2 2 1
3 9 9 0 5 16 0 2 8 21 45 13 6
4 21 28 64 22 40 79 0 16 53 76 43 38
5 2 0 0 0 0 0 1 0 3 0 0 1
6 11 22 4 21 13 9 2 3 0 4 39 8
7 5 32 11 9 16 1 0 4 33 0 17 22
8 4 0 2 0 1 11 0 0 0 1 0 1
9 0 0 3 1 0 0 1 0 0 0 0 0
目前我的位置是:
X0 X1 X2 X3 X4 X5
0 0 2 3 3 0 0
1 1 0 4 2 0 0
2 0 0 0 0 0 0
3 0 2 2 0 1 0
4 0 0 3 2 0 2
5 0 0 3 3 1 0
我想将接收者和演员添加到我的接收者中,并将行和列的名称更改为1,...,6。
我的数据也列在工作区中的“数据”下,并显示:
'num' [1:6,1:6] 0 1 ...
而工作区中的示例数据在“值”中显示为:
'table' num [1:12,1:12] 0 1 13 ...
如果您有建议以与他们相同的类型和样式来获取我的数据,请告诉我,我们将不胜感激!
答案 0 :(得分:1)
好的,所以您有一个像这样的矩阵:
m <- matrix(c(1:9), 3)
rownames(m) <- 0:2
colnames(m) <- paste0("X", 0:2)
# X0 X1 X2
#0 1 4 7
#1 2 5 8
#2 3 6 9
首先,您需要删除X并将其变成表格:
colnames(m) <- sub("X", "", colnames(m))
m <- as.table(m)
# 0 1 2
#0 1 4 7
#1 2 5 8
#2 3 6 9
然后您可以设置尺寸名称:
names(dimnames(m)) <- c("Actor", "Recipient")
# Recipient
#Actor 0 1 2
# 0 1 4 7
# 1 2 5 8
# 2 3 6 9
但是,通常,您将使用table
函数根据原始数据创建列联表,该函数将自动返回表对象。因此,也许您应该修复创建矩阵的步骤?