我有这个样本矩阵:
X1 X2 X3 X4
1 F F F F
2 C C C C
3 D D D D
4 A# A# A# A
而且我正在尝试使用for循环来获取每列中唯一音高的数量。这是我要尝试的方法:
y <- read.csv(file)
frame <- data.frame(y)
for(i in 1:4){
specframe <- frame[, i]
x <- unique(specframe)
}
length(x)
但是length的结果仅为4。我正在寻找的输出是4个元素的向量,其中每个元素详细说明其各自列中唯一元素的数量。看起来for循环在每次循环时都重写x,那么我如何制作一个向量,在每次循环时都包含一个元素?
这应该足够了:
y <- read.csv(file)
x <- numeric(4)
for(i in 1:4) {
x[i] <- length(unique(y[, i]))
}
或者:
x <- apply(y,2,function(x) length(unique(x)))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句