gpt4 book ai didi

r - 查找矩阵或数据框中每个唯一列的频率

转载 作者:行者123 更新时间:2023-12-04 10:45:34 25 4
gpt4 key购买 nike

我想通过他们的列找到矩阵的频率。例如对于下面的矩阵 x

   x <- matrix(c(rep(1:4,3),rep(2:5,2)),4,5)
x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 2 2
[2,] 2 2 2 3 3
[3,] 3 3 3 4 4
[4,] 4 4 4 5 5

现在如何找到每个唯一列的频率并创建一个矩阵,其中每一列都是 x 的唯一列,最后一行添加为矩阵 x 中的频率
 #freqmatrix
[,1] [,2]
[,1] 1 2
[,2] 2 3
[,3] 3 4
[,4] 4 5
[,5] 3 2

最佳答案

你的最终目标是什么?换句话说,您将如何进一步处理这些数据?如果只是制表,那么 paste() 不是让您找到答案吗?

x <- matrix(c(rep(1:4,3),rep(2:5,2)),4,5)
x1 <- data.frame(table(apply(x, 2, paste, collapse = ", ")))
# Var1 Freq
# 1 1, 2, 3, 4 3
# 2 2, 3, 4, 5 2

如果您确实希望将 Var1 分开,则可以在该列上使用 read.csv()
cbind(read.csv(text = as.character(x1$Var1), header = FALSE), x1[-1])
# V1 V2 V3 V4 Freq
# 1 1 2 3 4 3
# 2 2 3 4 5 2

或者,如果您更喜欢转置输出:
t(cbind(read.csv(text = as.character(x1$Var1), header = FALSE), x1[-1]))
# [,1] [,2]
# V1 1 2
# V2 2 3
# V3 3 4
# V4 4 5
# Freq 3 2

关于r - 查找矩阵或数据框中每个唯一列的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14434632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com