我将xlsx文件导入R,该表有很多列,其中一些包含数字,而另一些包含字符。 当我尝试对包含字符的列进行摘要时,得到此
> Length Class Mode
> 287 character character
而我的专栏是这样的:
yes
no
no
yes
我想要这个:
yes:2
no: 2
我试图将表另存为数据框,但没有用,并且我也尝试将其另存为表,但出现“表不可强制”的情况。
有什么想法吗?谢谢:)
答案 0 :(得分:0)
如果要输出summary
,则必须将字符列转换为 factors 。
考虑一个带有字符列的数据框:
iris2 <- iris
iris2$Species <- as.character(iris2$Species)
然后您会得到以下有害输出:
> summary(iris2)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
Min. :4.30 Min. :2.00 Min. :1.00 Min. :0.1 Length:150
1st Qu.:5.10 1st Qu.:2.80 1st Qu.:1.60 1st Qu.:0.3 Class :character
Median :5.80 Median :3.00 Median :4.35 Median :1.3 Mode :character
Mean :5.84 Mean :3.06 Mean :3.76 Mean :1.2
3rd Qu.:6.40 3rd Qu.:3.30 3rd Qu.:5.10 3rd Qu.:1.8
Max. :7.90 Max. :4.40 Max. :6.90 Max. :2.5
要将所有字符列转换为因子,map_if
包的purrr
函数很方便:
library(purrr)
iris3 <- as.data.frame(map_if(iris2, is.character, as.factor))
然后:
> summary(iris3)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
Min. :4.30 Min. :2.00 Min. :1.00 Min. :0.1 setosa :50
1st Qu.:5.10 1st Qu.:2.80 1st Qu.:1.60 1st Qu.:0.3 versicolor:50
Median :5.80 Median :3.00 Median :4.35 Median :1.3 virginica :50
Mean :5.84 Mean :3.06 Mean :3.76 Mean :1.2
3rd Qu.:6.40 3rd Qu.:3.30 3rd Qu.:5.10 3rd Qu.:1.8
Max. :7.90 Max. :4.40 Max. :6.90 Max. :2.5