我有23个变量,其中22个是数字变量,它们是基于Service
,Reliability
等参数的人的调查数据,所有参数的值都在1-10范围内,99 =中性。< / p>
第23个变量是性别。
我应该把数据分成男性和女性
b <- data.frame(subset(Dataset, Dataset$Gender =='1')) #Male
c <- subset(Dataset, Dataset$Gender =='2') #Female
然后我在这里删除了变量号20,即分析所不需要的年龄
x <- data.frame(b[c(1:19,21,22,23,24)])
y <- data.frame(c[c(1:19,21,22,23,24)])
因此,x
和y
数据框x
和y
分别有22个数字变量和1个分类变量,分别为男性和女性。
现在我应该得到22个数字变量的平均值,以便对于每个变量选择,如果值在0-7&amp;范围内。 99然后不应选择该观察,如果值是8-10,那么应该选择该观察,并且应该获得收集这些观察的平均值(8-10)
z <- subset(colMeans(x[c(1:19,21,22,23)]), x[c(1:19,21,22,23)] > 7 & x[c(1:19,21,22,23)] != 99) #This is where i am facing a problem. I am not getting proper values and results as per my expectation.
如果您有任何想法如何解决,请帮帮我
答案 0 :(得分:0)
如果我理解你的问题,可能会有以下情况 首先,让我们编写一些数据,因为您还没有发布数据集示例。
set.seed(510)
Dataset <- as.data.frame(matrix(sample(c(1:10, 99), 2400, TRUE), ncol = 24))
names(Dataset)[24] <- "Gender"
Dataset$Gender <- sample(1:2, 100, TRUE)
现在,代码。
a <- subset(Dataset, Gender == 1, select = c(1:19, 21:24)) # Male
b <- subset(Dataset, Gender == 2, select = c(1:19, 21:24)) # Female
sapply(a[-ncol(a)], function(x) mean(x[x > 7 & x != 99]))
sapply(b[-ncol(b)], function(x) mean(x[x > 7 & x != 99]))