如何在data.frame中找到列的数据类型?
我使用下面的代码,它有意义吗? 我得到了正确的输出。
for (f in feature.names) {
if (class(train[[f]]) == "character") {
count_c <- count_c + 1
}
if(class(train[[f]]) == "numeric"){
count_numeric <- count_numeric + 1
}
if(class(train[[f]]) == "logical"){
print(f)
print(unique(train[[feature.names[count_n]]]))
cat('\n')
count_logic <- count_logic + 1
}
if(class(train[[f]]) == "integer"){
count_int <- count_int + 1
}
count_n <- count_n + 1
}
答案 0 :(得分:1)
如果您已正确初始化计数器,则代码应该可以正常工作。 (一个可以重现的例子很好......)跟进@ akrun的建议,
table(sapply(yourdat, class))
应该替换你正在做的事情,尽管像
allClasses <- c("logical","integer","character","numeric")
s <- sapply(yourdat,class)
f <- factor(s,levels=allClasses)
table(f)
可能会稍好一些(如果数据集中没有表示类型,则可以正常工作)。