R 在进行转置时,用行名称替换数据帧中的值
我有一个如下的数据帧R 在进行转置时,用行名称替换数据帧中的值,r,R,我有一个如下的数据帧 X Y Z A * B C * D E F * G * H * I * * 我想将列名更改为行,这样它就可以与原始行重复多次,在单元格中有一个星号 结果输出如下所示 School Agency X A X C X F X G X I Y I Z * 我检查
X Y Z
A *
B
C *
D
E
F *
G *
H *
I * *
我想将列名更改为行,这样它就可以与原始行重复多次,在单元格中有一个星号
结果输出如下所示
School Agency
X A
X C
X F
X G
X I
Y I
Z *
我检查过了,但它的行和列名相同,因此不起作用。我们可以使用
中的arr.ind
获取行/列索引,该索引位于逻辑矩阵上的,并获得相应的行名和列名
i1 <- which(dat == "*", arr.ind = TRUE)
data.frame(School = colnames(dat)[i1[,2]], Agency = row.names(dat)[i1[,1]])
i1
dat <- structure(list(X = c("*", "", "*", "", "", "*", "*", "", "*"),
Y = c("", "", "", "", "", "", "", "", "*"), Z = c("", "",
"", "", "", "", "", "*", "")), row.names = c("A", "B", "C",
"D", "E", "F", "G", "H", "I"), class = "data.frame")