r - 为什么 summary 和 class 方法在 R 中的 data.frame 类型上不一致?

标签 r dataframe

<分区>

这是设置:

mydf<-structure(list(weight = c(1.34288799762726, 1.18884372711182, 
1.15979790687561, 1.34288799762726, 1.08285343647003, 1.07932889461517, 
1.28913342952728, 1.211909532547, 1.03438591957092, 1.22719633579254
), RespID = c(3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 
3190, 3191), b1 = structure(c(1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 
2L, 2L), .Label = c("Mand", "Kvinde"), class = "factor")), .Names = c("weight", 
"RespID", "b1"), row.names = c(NA, 10L), class = "data.frame")

现在调用 summary 将生成以下输出:

summary(mydf)
#     weight          RespID          b1   
# Min.   :1.034   Min.   :3182   Mand  :4  
# 1st Qu.:1.102   1st Qu.:3184   Kvinde:6  
# Median :1.200   Median :3186             
# Mean   :1.196   Mean   :3186             
# 3rd Qu.:1.274   3rd Qu.:3189             
# Max.   :1.343   Max.   :3191            

同时 apply 给出另一个结果:

apply(mydf, 2, class)
#     weight      RespID          b1 
#"character" "character" "character" 

因此,根据应用,我的 data.frame 中的每一列都属于“字符”类,我知道这是错误的。不过,总结是正确的。

最佳答案

发生这种情况的原因是 apply 需要一个矩阵

> as.matrix(mydf)
   weight     RespID b1      
1  "1.342888" "3182" "Mand"  
2  "1.188844" "3183" "Kvinde"
3  "1.159798" "3184" "Mand"  
4  "1.342888" "3185" "Mand"  
5  "1.082853" "3186" "Kvinde"
6  "1.079329" "3187" "Kvinde"
7  "1.289133" "3188" "Mand"  
8  "1.211910" "3189" "Kvinde"
9  "1.034386" "3190" "Kvinde"
10 "1.227196" "3191" "Kvinde"

你要使用的是sapply:

> sapply(mydf,class)
   weight    RespID        b1 
"numeric" "numeric"  "factor" 

关于r - 为什么 summary 和 class 方法在 R 中的 data.frame 类型上不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18017828/

相关文章:

python - 是否可以将巨大的 dask 数据帧保存到 Parquet 中?

python - 尝试将特定列乘以 Pandas DataFrame (Python) 中多行的一部分

r - 条形图最后一部分的绘图线

python - 如何平均每 5 行特定列并从 Pandas 的另一列中选择最后一个数据

python - 如何将数据帧列中的字符串与另一个数据帧中的子字符串进行比较并提取值

r - (函数(..., row.names = NULL, check.rows = FALSE, check.names = TRUE, : Arguments imply different number of rows: 1, 4, 5, 2

r - 在 R 中使用聚合为另一个变量的相同值查找一个变量的唯一值

R:我可以使用Reduce(或其他高级函数)执行以下操作吗?

r - 创建新变量,它是许多其他变量的线性组合

r - 如何使用 ggplot2 中的 shapefile 从第一个图中保留 scale_fill_color