所有
长话短说:
我有一个包含60000多个条目的数据集。
一个变量基于个体来自(位置)的位置,具有大约10个不同的类别。另一个是整体满意度,得分为1到10分。
但是,所有类别都包含“乡村”一词或“城市”一词。
我想要做的是比较位置变量中包含单词Rural的所有案例的总体平均值,以及位置变量中包含单词Urban的所有案例。
我使用了一种解决方法,只是在Excel的初始数据集中创建一个额外的列,在位置列中找到“乡村”或“城市”一词,并根据找到的内容返回“乡村”或“城市”,但是我&# 39;我确定必须有办法严格使用R。
这可能吗?谢谢!
答案 0 :(得分:2)
创建一些虚拟数据:
set.seed(1)
foo <- data.frame(
loc=sample(c(paste0("Rural",LETTERS[1:5]),paste0(LETTERS[10:14],"Urban")),
100,replace=TRUE),
xx=rnorm(100))
现在听起来您希望grepl()
为您的关键字设置grep,而by()
计算意味着按关键字:
> with(foo,by(xx,grepl("Urban",loc),mean))
grepl("Urban", loc): FALSE
[1] -0.07220176
-------------------------------
grepl("Urban", loc): TRUE
[1] 0.04159463
或许你真的想要一个t检验:
> with(foo,t.test(xx~grepl("Urban",loc)))
Welch Two Sample t-test
data: xx by grepl("Urban", loc)
t = -0.60245, df = 97.076, p-value = 0.5483
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.4886860 0.2610932
sample estimates:
mean in group FALSE mean in group TRUE
-0.07220176 0.04159463