Я новичок в R, и мой довольно тривиальный вопрос вращается вокруг кадра данных с двумя переменными: зарплатой и полу и несколькими тысячами записей. Я хочу изолировать данные, чтобы я мог выполнять основные статистические операции в отношении зарплаты, но для каждого пола конкретно. Я знаю, что для этого должна быть какая-то простая операция, но я не могу найти подходящие функции.Анализ основных данных в r
ответ
Пожалуйста, включите воспроизводимый пример и более подробную информацию (что такое «простая операция»?) Вот несколько примеров.
mydata <- data.frame(salary=runif(50,100,200),
gender=as.factor(rep(c("male","female"),each=25)))
with(mydata, tapply(salary, gender, mean))
library(doBy)
summaryBy(salary ~ gender, FUN=c(mean,sd,min,max), data=mydata)
Третий вариант, который мне очень нравится, представляет собой пакет plyr
. Это разбивает кадры данных (или списки или массивы) на части на основе значения одного из столбцов кадра данных. Затем вы можете выполнить любую операцию, которая вам нравится на фрейме данных. Это называется стратегией «split-apply-comb» для анализа данных. Например, если вы хотите, среднее и стандартное отклонение вашего data
колонки для каждой уникальной комбинации заработной платы и пола, вы могли бы сделать что-то вроде
#load the package
require(plyr)
#make up some fake data
gender <- gl(2, 1, 100, labels=c("m", "f"))
# Note that I'm assuming salary will be a categorical variable
salary <- gl(5, 1, 100, labels=c("very low", "low", "medium", "high", "very high"))
data <- runif(100)
df <- data.frame(gender=gender, salary=salary, data=data)
# Calculate the mean for each combination of gender and salary
meanAndSD <- ddply(df, c("gender", "salary"), summarise, meanData=mean(data), sdData=sd(data))
print(meanAndSD)
Там часто несколько способов сделать ту же самую задачу в R. Еще один заключается в использовании функции by
. Следуя примеру Ремко:
mydata <- data.frame(salary=runif(50,100,200),
gender=as.factor(rep(c("male","female"),each=25)))
by(mydata,mydata$gender,function(x) mean(x$salary))
- 1. Анализ основных компонентов в R
- 2. Анализ основных компонентов в R, ggbiplot
- 3. анализ основных компонентов
- 4. поиск основных данных в R
- 5. Основных компоненты Анализ biplot в R с выпуклыми многоугольниками
- 6. Анализ основных компонентов с Matplotlib
- 7. Анализ основных компонентов
- 8. Анализ основных компонентов в MATLAB
- 9. Путь: Анализ данных в R
- 10. Анализ данных строки в R
- 11. Автоматический анализ данных в R
- 12. Python - Анализ основных компонентов
- 13. Анализ основных компонентов в C#
- 14. Анализ основных компонентов в Python
- 15. Анализ основных компонентов и вращение
- 16. Анализ нелинейных данных с R
- 17. Анализ текста в кадре данных в r
- 18. Генерация и анализ XML из основных данных в iphone
- 19. как определить, лучше ли стандартизировать вашу матрицу данных, когда вы выполняете анализ основных компонентов в R?
- 20. Анализ данных ранжирования LimeSurvey в R
- 21. Анализ XML в R-кадре данных
- 22. Анализ данных по нескольким строкам в R
- 23. Анализ данных со временем в R
- 24. Анализ XML в R
- 25. парный анализ в R
- 26. Анализ настроений в R
- 27. Описательный анализ в R
- 28. Анализ основных компонентов (PCA) в Python
- 29. PCA - анализ основных компонентов в Matlab, код
- 30. вычисление основных коэффициентов в 'R'
Большое вам спасибо, я знаю, что мой вопрос был очень мало смысла, но вы точно ответили, на что я надеялся. Я не совсем понял функцию «tapply()» в отношении фрейма данных, но вам удалось дать ему некоторый контекст для меня, даже не понимая, что я прошу. Спасибо огромное ! – user2680851
@ user2680851, что вы делаете, это «агрегирование» ваших данных. Таким образом, другой простой вариант - «совокупность (зарплата ~ пол, mydata, mean)». – A5C1D2H2I1M1N2O1R2T1
@ user2680851: Нельзя понять, как использовать 'tapply' с dataframes. Первый аргумент 'tapply' является атомарным. Резервные данные являются рекурсивными. Функция 'with' создает локальную среду, в которой оцениваются имена столбцов dataframe. Таким образом, один атомный вектор, один вектор факторов и функция перешли в 'tapply' в приведенном выше примере. –