我是编码初学者,我在学校学习 RStudio,但我对“mtcars”数据集的这个问题感到困惑。
问题是 “创建一个交叉表,显示属于每个气缸和齿轮类组合的观测值数量。该表应显示给定汽车有 4 个气缸 3 个齿轮、4 个气缸 4 个齿轮等的观测值。报告该数据集中记录了哪种组合以及该类型汽车的观察次数。”
我可以创建交叉表,并且已经询问了 GPT 并搜索了如何报告观察数,但我找不到答案,我尝试使用 for 循环,但没有生成任何结果。
crosstabs <- data.frame('Cylinder'= mtcars$cyl,'Gear'=mtcars$gear)
print(crosstabs)
number_observations = 0
for (i in crosstabs$Cylinder) {
for (j in crosstabs$Gear) {
if (crosstabs[i,j] != number_observations){
number_observations=number_observations+1
print(paste("There are", number_observations, "cars with", i, "cylinders and", j, "gears."))
}
}
}
我的意思是,如果该组合尚未在 number_observations 中,那么我将添加这些组合并向 number_observations 中再加 1。然而,这似乎是不正确的。 它没有显示任何语法错误,但不返回任何结果。 你能帮我解答这个问题吗?我需要你的帮助。之前非常感谢!
在下面找到两种方法来解决您的问题:
# way 1
xtabs(~ cyl + gear, data=mtcars)
# way 2
with(mtcars, table(cyl, gear))
gear
cyl 3 4 5
4 1 8 2
6 2 4 1
8 12 0 2