我对 R 工具很陌生,我的问题可能有点太明显了。
我有一个包含以下数据的文件:
Score Frequency
100 10
200 30
300 40
如何读取此文件并计算均值、中值、方差和标准差?
如果上表只是没有任何频率信息的原始分数,那么我可以这样做:
x <- scan(file="scores.txt", what = integer())
中位数(x)
等等,但是当给定频率表时,我无法理解如何进行这些计算。
最佳答案
用read.table
读取数据(读取 ?read.table
以读取文件)。然后,通过创建单个分数的向量来扩展数据。然后我们可以编写一个函数来获取所需的统计信息。当然,如果您不想编写函数,您可以单独计算每个。
d <- read.table(header = TRUE, text = "Score Frequency
100 10
200 30
300 40")
d2 <- rep(d$Score, d$Frequency) ## expands the data by frequency of score
multi.fun <- function(x) {
c(mean = mean(x), median = median(x), var = var(x), sd = sd(x))
}
multi.fun(d2)
# mean median var sd
# 237.50000 250.00000 4905.06329 70.03616
关于R 计算均值、中值、方差与频率分布的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22644481/