0

如何在 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
}
4

1 回答 1

1

如果您已正确初始化计数器,您的代码应该可以工作。(一个可重复的例子会很好......)跟进@akrun的建议,

table(sapply(yourdat, class))

应该取代你正在做的事情,虽然像

allClasses <- c("logical","integer","character","numeric")
s <- sapply(yourdat,class)
f <- factor(s,levels=allClasses)
table(f)

可能会工作得更好(如果数据集中没有表示类型,则可以工作)。

于 2015-08-30T14:21:22.977 回答