我使用R并使用read.csv()将数据加载到数据帧中。如何确定数据帧中每一列的数据类型?
当前回答
要获得一个带有类型和类的漂亮Tibble:
purrr::map2_df(mtcars,names(mtcars), ~ {
tibble(
field = .y,
type = typeof(.x),
class_1 = class(.x)[1],
class_2 = class(.x)[2]
)
})
其他回答
sapply(yourdataframe, class)
你的dataframe是你正在使用的数据帧的名称
因为说得不清楚,我补充一下:
我正在寻找一种方法来创建一个表,其中保存所有数据类型的出现次数。
假设我们有一个data.frame,有两个数字列和一个逻辑列
dta <- data.frame(a = c(1,2,3),
b = c(4,5,6),
c = c(TRUE, FALSE, TRUE))
您可以用它来总结每种数据类型的列数
table(unlist(lapply(dta, class)))
# logical numeric
# 1 2
如果您有很多列,并且想要快速浏览,那么这个方法非常方便。
这个解决方案的灵感来自@Cybernetic的答案。
另一种选择是使用purrr包的map函数。
library(purrr)
map(df,class)
下面是一个函数,它是helpRFunctions包的一部分,它将返回数据帧中所有不同数据类型的列表,以及与该类型相关的特定变量名。
install.package('devtools') # Only needed if you dont have this installed.
library(devtools)
install_github('adam-m-mcelhinney/helpRFunctions')
library(helpRFunctions)
my.data <- data.frame(y=rnorm(5),
x1=c(1:5),
x2=c(TRUE, TRUE, FALSE, FALSE, FALSE),
X3=letters[1:5])
t <- list.df.var.types(my.data)
t$factor
t$integer
t$logical
t$numeric
然后,您可以执行类似var(my.data[t$numeric])的操作。
希望这对你有帮助!
简单地传递你的数据帧到下面的函数:
data_types <- function(frame) {
res <- lapply(frame, class)
res_frame <- data.frame(unlist(res))
barplot(table(res_frame), main="Data Types", col="steelblue", ylab="Number of Features")
}
生成数据帧中所有数据类型的图表。对于虹膜数据集,我们得到以下结果:
data_types(iris)
推荐文章
- 在编写自己的函数时,如何使用R的省略号特性?
- 当我的ggplot2语法合理时,我如何处理R CMD检查“全局变量无可见绑定”注释?
- 如何解窝(爆炸)在一个熊猫数据帧列,成多行
- 如何将表转换为数据帧
- 转换data.frame列到向量?
- IEEE 754浮点数不能精确表示的第一个整数是哪一个?
- c++中size_t和int的区别是什么?
- 如何将颜色分配给ggplot2中具有稳定映射的类别变量?
- 在基础图形的绘图区域之外绘制一个图例?
- 我看到VARCHAR(255)如此频繁地使用(而不是其他长度),有什么好的原因吗?
- 根据Pandas中的另一列提取列值
- 在ggplot2中的各个facet上注释文本
- 返回类型为'?:'(三元条件运算符)
- 如何比较Python中对象的类型?
- 确定数据帧列的数据类型