Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R从本地文件计算平均值和中值_R_Statistics - Fatal编程技术网

R从本地文件计算平均值和中值

R从本地文件计算平均值和中值,r,statistics,R,Statistics,我是R的新手,所以这可能是显而易见的 到目前为止,我掌握的代码是: rm(list=ls()) kdata = read.table("data_fra_klassen_v20.txt",header = TRUE,) library(openxlsx) kdata = read.xlsx("data_fra_klassen_v20.xlsx") head(kdata) 以下是数据集: gender shoe height colour Man

我是R的新手,所以这可能是显而易见的

到目前为止,我掌握的代码是:

rm(list=ls())

kdata = read.table("data_fra_klassen_v20.txt",header = TRUE,)

library(openxlsx)

kdata = read.xlsx("data_fra_klassen_v20.xlsx") 


head(kdata)
以下是数据集:

  gender    shoe    height  colour
  Man        43      176    Green
  Woman      36      166    Brown
  Man        43      182    Other
  Man        36      151    Brown
  Woman      43      183    Blue
  Man        44      184    Blue
  Woman      38      164    Brown
  Woman      37      160    Brown
  Man        41      175    Brown
我试图找出每个性别的平均值和中位数

我在想可能是这样的:

heightmen = kdata$height[kdata$gender=="Man"]
mean(heightmen)

然而,它似乎找不到任何值

您可以使用R中的
dplyr
软件包:

使用
mutate

library(dplyr)
df %>% 
  group_by(gender)%>% 
  mutate(mean_height = mean(height))%>% 
  mutate(median_height = median(height)) %>% 
  select(gender, mean_height, median_height) %>% 
  unique()
或使用
摘要

df %>%
  group_by(gender) %>%
  summarise(mean_height = mean(height), median_height = median(height))


# A tibble: 2 x 3
# Groups:   gender [2]
#   gender mean_height median_height
#<fct>        <dbl>         <dbl>
#1 Man           174.           176
#2 Woman         168.           165
df%>%
按性别划分的组别%>%
总结(平均高度=平均高度,中间高度=中间高度)
#一个tibble:2x3
#团体:性别[2]
#性别平均身高中位数身高
#                 
#一名男子174。176
#2女168。165
数据
df其他解决方案与以前的代码类似,但使用
子集

mean(subset(kdata,gender == "Man")$height)
mean(subset(kdata,gender == "Woman")$height)
试试这个

library(dplyr)
kdata  %>% group_by(gender) %>% summarise(median = quantile(height, 0.5), mean = mean(height))

@Ben首先使用这个
install.packages(“tidyverse”)
,然后运行上面的代码..我认为最好使用
summary
而不是
mutate
来获得性别的平均值。这似乎已经解决了问题。我来看看这是否更好@JonathanV.Solórzanow你说它找不到任何值是什么意思?我不明白为什么你的代码不能让我明白173.6实际上你的代码应该可以正常工作。检查列的格式是否正确,尤其是
类(kdata$height)
应生成
“数值”
“整数”
。作为一种解决方法,请尝试
As.numeric(As.character(kdata$height))[kdata$gender==“Man”]
@jay.sf有人给了我另一种解决方案,不过,我会尝试一下你所说的,以便更好地理解r。
library(dplyr)
kdata  %>% group_by(gender) %>% summarise(median = quantile(height, 0.5), mean = mean(height))