【发布时间】:2016-06-13 14:57:29
【问题描述】:
这是一个关于apply使用的问题。回答这种性质的问题纯属巧合。我不是在寻找最简单的方法(这会使它重复)。我写了一些随机的东西,可以使用循环来解决。我正在寻找如何使用 apply 来编写我的问题。
在 R 中,我很难摆脱总是使用循环的习惯。这是我编写的一个基本示例脚本。它获取数据并说明表中每个唯一数字的频率。如果可能,我如何使用 apply 完成相同的事情?
x <- c(1,3,4,7,8,10,1,2,3,4,4,6,7,8,8,1,2,3,7,8)
y <- data.frame(x)
z <- data.frame(unique(y)) #finds unique values
i <- nrow(z) #nrow for loop length
id <- 1:i
repped <- data.frame()
for (i in id){
zz <- y[which(y[,1] == z[i,]),] #takes each value from z and finds rows with identical values
value <- length(zz)
repped <- rbind(repped, value)
}
yy <- data.frame(z, repped)
colnames(yy) <- c("number", "frequency")
【问题讨论】: