假设我有一个这样的数据框:
data <- data.frame(
sent = letters[1:5],
n.x = abs(rnorm(5)),
n.y = abs(rnorm(5))
)
如果我将其强制转换为矩阵,然后使用prop.table
:
prop.table(data.matrix(data), 2)
我得到以下信息:
sent n.x n.y
[1,] 0.06666667 0.0948657 0.1665655
[2,] 0.13333333 0.1042308 0.2598814
[3,] 0.20000000 0.3516696 0.2230854
[4,] 0.26666667 0.2617903 0.1438551
[5,] 0.33333333 0.1874436 0.2066125
如何将第一列保留为字符向量?
答案 0 :(得分:2)
如果我理解正确,那么您真正想要的是
data <- data.frame(
sent = letters[1:5],
n.x = abs(rnorm(5)),
n.y = abs(rnorm(5))
)
cbind(data[1], prop.table(data.matrix(data[-1]), 2))
sent n.x n.y
1 a 0.0004247739 0.17667990
2 b 0.1748003178 0.30665196
3 c 0.1361206704 0.17707674
4 d 0.6359362530 0.25927624
5 e 0.0527179849 0.08031516