我还有一个问题,希望得到您的帮助。我已经用谷歌搜索了,问了一个朋友并试图了解这个网站周围的类似问题/问题,但我仍然无法弄清楚......
好的,这是我的问题:我有一个涵盖 1980-2012 年数据的大型数据集。我使用 read.spss 函数将数据输入 R
rohdaten <-read.spss("C:\\Users\\xxxxxxx.sav", use.value.labels = TRUE, to.data.frame = TRUE,
max.value.labels = Inf, trim.factor.names = FALSE,
trim_values = TRUE, reencode = NA, use.missings = TRUE)
这似乎行得通。然后我想分析变量 14 (v14),它是一个从“完全同意”到“完全不同意”的李克特量表,因此被编码为一个因素。我想比较随着时间的推移对这个李克特量表的回复的变化,所以我想计算它的平均值,为了这样做,它需要是数字的。这是问题的第一步......根据R for Dummies,我需要先将因子更改为字符,然后将其更改为数字。好吧...这是我的代码...首先我尝试了不起作用的 recode() 函数 - 然后我继续创建了一个新对象“econ”,该对象在副本中计算了 variable14。(所以我不影响工作区中的原始 v14 数据)
rohdaten$v14_2 <- recode(rohdaten$v14, "8 = NA; 9 = NA; 0 = NA; 1 = 1; 2 = 2; 3 = 3; 4 = 4; 5 = 5; as.factor.result = FALSE") #should recode already - kinda doesn't work
class(rohdaten$v14_2) #just tells me it's a factor...
str(rohdaten$v14_2)
econ <- rohdaten$v14_2
考虑到“傻瓜网站”,我将内容更改为字符,然后更改为数字
str(econ)
as.character(econ)
head(econ)
econ <- as.numeric(econ)
head(econ)
出于某种原因,这给了我一个“好”的结果,尽管“作为字符”行中的“错误”(??)......如果我选择- 我在 命令econ <- as.character(econ)
后收到“警告消息:强制引入的 NA” econ <- as.numeric(econ)
...
好的,到目前为止,我猜它似乎以某种方式工作!?
但是后来我想计算每年的平均值(在变量 2 中),我偶然发现了这个函数by()
,它看起来就像我想要的那样,所以我的代码结果是:
avgEconRat <- by(data = rohdaten, INDICES = rohdaten$v2, FUN = mean, na.rm = T)
head(avgEconRat) #actually gives me some means - not sure though whether it's the real means or the means of the "factor-number" that's mentioned in the "for-dummies-website" - sorry I can't explain it better :-(
现在我似乎在 avgEconRat 对象中有数据,但首先,我不确定我的平均值是否正确,其次,这在某种程度上是主要问题,我现在如何参考我的数据来绘制它?
p1 <- ggplot(na.action=na.exclude, rohdaten, aes(v14, v2))
p1 + geom_point(aes(color = v652), alpha = 0.6) +
facet_grid(. ~ v5)
这就是我想到的代码 - 我知道我现在必须用“econ”替换“rohdaten”,但因为我不知道“econ”是如何构建的(而且也不知道如何找出),我完全被困在这里:-/我觉得我拥有(或可能拥有,取决于我的手段是否正确......)我需要的数据,但有点无法访问它。
很抱歉我遇到了奇怪的问题,但是如果没有任何以前的经验,在没有真正指导的情况下学习编程有点困难。
非常感谢您的耐心、时间和帮助!