新的R(生物统计)在这里!我有一个巨大的数据集,并且正在使用来自心理包的describe()和describeBy()。但我也试图找到一种方法来为子组中的子组做基本的统计。
例如,我的数据集是关于在一个有中国和印度成员的俱乐部内的成员。其他变量包括性别、年龄、身高、体重、BMI等。
我计算出了psych::describeBy,以查看由一个变量(例如种族)定义的子组的均值和标准差,但我不知道如何进一步缩小这一范围,以便我只为中国男性成员生成一个摘要。
我尝试使用subset()函数重新定义,然后再次运行describeBy。
chinese <- subset(maindata, chinese=1)
describeBy(chinese, male=1)但这是行不通的,结果与describeBy(maindata,chinese=1)一样,而不是中国男性的子集。
我希望这是有意义的。
我唯一能想到的其他解决方案是在MS中将我的主数据集分解成较小的数据集,然后分别重新上传每个数据集(例如Chinese.xls、Indian.xls),或者创建一个由种族组合定义的新变量,例如Chinesemale=1、Chinesefemale=2、Indianmale=3、Indianfemale=4。
我或多或少需要分析这些子组的t测试和Fisher的准确,所以任何好的一揽子建议,将有助于解决这些问题,将不胜感激!
提前谢谢!!
发布于 2020-01-19 15:59:45
样本数据
df1 <- data.frame(subject = c(1, 2, 3, 4, 5),
chinese = c(1, 1, 1, 0, 0),
male = c(1, 0, 1, 0, 1),
value = c(45, 23, 84, 11, 12))代码中的两个语法更改:
subset()中的双重等号。如果要为名为chinese.describeBy()的参数赋值1,则使用单个等号,group参数为该列中的每个类别提供不同的汇总统计信息(如下所示)。不能将它用于male=1. 的子集
chinese <- subset(df1, chinese == 1)
describeBy(chinese, group = "male")
Descriptive statistics by group
group: 0
vars n mean sd median trimmed mad min max range skew kurtosis se
subject 1 1 2 NA 2 2 0 2 2 0 NA NA NA
chinese 2 1 1 NA 1 1 0 1 1 0 NA NA NA
male 3 1 0 NA 0 0 0 0 0 0 NA NA NA
value 4 1 23 NA 23 23 0 23 23 0 NA NA NA
-------------------------------------------------------------------------------------------------------------------------------------
group: 1
vars n mean sd median trimmed mad min max range skew kurtosis se
subject 1 2 2.0 1.41 2.0 2.0 1.48 1 3 2 0 -2.75 1.0
chinese 2 2 1.0 0.00 1.0 1.0 0.00 1 1 0 NaN NaN 0.0
male 3 2 1.0 0.00 1.0 1.0 0.00 1 1 0 NaN NaN 0.0
value 4 2 64.5 27.58 64.5 64.5 28.91 45 84 39 0 -2.75 19.5如果只想在示例中查看男性的汇总统计数据,可以将& male == 1添加到subset()中。
chinese <- subset(df1, chinese == 1 & male == 1)
describeBy(chinese)
vars n mean sd median trimmed mad min max range skew kurtosis se
subject 1 2 2.0 1.41 2.0 2.0 1.48 1 3 2 0 -2.75 1.0
chinese 2 2 1.0 0.00 1.0 1.0 0.00 1 1 0 NaN NaN 0.0
male 3 2 1.0 0.00 1.0 1.0 0.00 1 1 0 NaN NaN 0.0
value 4 2 64.5 27.58 64.5 64.5 28.91 45 84 39 0 -2.75 19.5https://stackoverflow.com/questions/59811659
复制相似问题