R:分配给数据帧元素的变量类

时间:2017-09-15 08:43:05

标签: r class dataframe

我在R中写一个函数。它分配给" y"数据框元素的类。这是我的功能示例。

f=function(x,data) {
   y=class(eval(substitute(x),data))
   print(y)
}

d=data.frame(a=1,b=2)

f(a,d)
[1] "numeric"

我可以使用其他任何东西而不是类(eval(替换(x),数据))?

2 个答案:

答案 0 :(得分:1)

它可以以这种方式工作......稍微修改一下你如何使用f()

f = function (x, data) {
  y = lapply(data,class)
  print(y[[x]])
}

d <- data.frame ( a=1, b=2)

f("a",d)

这是通用的,可以用于所有列。

答案 1 :(得分:0)

如果您希望将每个列的类附加到数据框作为新列。请使用以下代码

library(dplyr)
df = data.frame(a = c(1:3),b = c("A","B","C"), c = as.factor(c("G","H","H")),stringsAsFactors = F)
class_df = lapply(df,class) %>% bind_rows()
names(class_df) = paste0(names(class_df),"_class")
df = cbind(df,class_df)