使用dplyr的描述性统计表中的长格式
我正在尝试使用dplyr获得一个长格式的统计描述表。我确实尝试了收集,但它不工作。。。我的代码示例如下:使用dplyr的描述性统计表中的长格式,r,dplyr,statistics,R,Dplyr,Statistics,我正在尝试使用dplyr获得一个长格式的统计描述表。我确实尝试了收集,但它不工作。。。我的代码示例如下: data(mtcars) table=mtcars %>% summarise_all(funs(mean, sd,median, min, max)) dim(table) [1] 1 55 table[1:4,1:4] > mpg_mean cyl_mean disp_mean hp_mean 1 20.09062 6.1875 230.7
data(mtcars)
table=mtcars %>%
summarise_all(funs(mean, sd,median, min, max))
dim(table)
[1] 1 55
table[1:4,1:4]
> mpg_mean cyl_mean disp_mean hp_mean
1 20.09062 6.1875 230.7219 146.6875
NA NA NA NA NA
NA.1 NA NA NA NA
NA.2 NA NA NA NA
table2=mtcars %>%
gather(stat) %>%
summarise_all(funs(mean, sd,median, min, max))
dim(table2)
table2[1:4,1:4]
1: In mean.default(stat) :
argument is not numeric or logical: returning NA
2: In var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm = na.rm) :
NAs introduced by coercion
3: In mean.default(sort(x, partial = half + 0L:1L)[half + 0L:1L]) :
argument is not numeric or logical: returning NA
> [1] 1 10
> stat_mean value_mean stat_sd value_sd
1 NA 39.60853 NA 84.20792
NA NA NA NA NA
NA.1 NA NA NA NA
NA.2 NA NA NA NA
在我的脑海中,每一个统计数据都是这样的:
mean
mpg 20.09062
cyl 6.1875
disp 230.7219
hp 146.6875
编辑:
在这里,我添加了一个我的数据帧的真实示例,删除点,并且uuosly我认为下面的解决方案更容易:
ex=数据帧(title_one=c(11,22,34,22,43454),title.two=c(22,44343343424676),title3=c(6,1,0,1,1))
我们可以
将
收集为“长”格式,将
键分为两列,将
扩展为“宽”格式
library(tidyverse)
gather(table) %>%
separate(key, into = c("key1", 'key2')) %>%
spread(key2, value)
对于具有多个分隔符的更新数据集,我们可以使用
extract
捕获字符
gather(table) %>%
extract(key, into = c("key1", "key2"), "^(\\w+)[_.](.*)") %>%
spread(key2, value)
我们可以
将
收集为“长”格式,将
键分为两列,将
扩展为“宽”格式
library(tidyverse)
gather(table) %>%
separate(key, into = c("key1", 'key2')) %>%
spread(key2, value)
对于具有多个分隔符的更新数据集,我们可以使用
extract
捕获字符
gather(table) %>%
extract(key, into = c("key1", "key2"), "^(\\w+)[_.](.*)") %>%
spread(key2, value)
谢谢,这个例子做得很好,但遗憾的是,我的真实数据出现了一个错误:错误:每一行输出都必须由唯一的键组合标识。共有35行密钥:@Rodrigo。好的,有错误的问题。最初,我通过添加
gather(table)%%>%separate(key,into=c(“key1”,“key2”))%%>%%>%groupby(key1,key2)%%>%mutate(rn=row_number())%%>%spread(key2,value)
然后意识到,这里不需要它,因为没有重复谢谢,使用很少的变量可以很好地工作,但是对于我的整个数据集,不在列中显示变量名称,在行中显示统计名称…@Rodrigo.您是否在列名中有\ucode>i..e multiple\u
使用dataframe:“ex“从更新中,我有错误的列名称,不存在更复杂的模式,但更改列名称删除点和u您的解决方案非常有效!!谢谢,这个例子做得很好,但遗憾的是,我的真实数据出现了一个错误:错误:每一行输出都必须由唯一的键组合标识。共有35行密钥:@Rodrigo。好的,有错误的问题。最初,我通过添加gather(table)%%>%separate(key,into=c(“key1”,“key2”))%%>%%>%groupby(key1,key2)%%>%mutate(rn=row_number())%%>%spread(key2,value)
然后意识到,这里不需要它,因为没有重复谢谢,使用很少的变量可以很好地工作,但是对于我的整个数据集,不在列中显示变量名称,在行中显示统计名称…@Rodrigo.您是否在列名中有\ucode>i..e multiple\u
使用dataframe:“ex“从更新中,我有错误的列名称,不存在更复杂的模式,但更改列名称删除点和u您的解决方案非常有效!!