将类转换为数据帧中的问题

时间:2018-12-31 16:41:19

标签: r dataframe

我正在尝试组合数据框并统一它们之间的列类。

我在将一栏转换为一个因子时遇到问题。

我尝试使用as.dataframe转换数据框,并使用as.factor转换列。

我有数据框a,b,c和列表

b$cat2 <-list[match (b$` Description`, list$Var1),"cat2",]
b2 <-b[,c("Number", "DOB", "Gender", "cat2"),]


colnames (b2) <- c ("Number", "DOB","Gender", "group" )

b2 <- as.data.frame (b2)

a$group <- as.factor (a$group)
class (b2$group )

 [1] "tbl_df"     "tbl"        "data.frame"

b2$group <- as.factor (b2$group)
Error: Can't use matrix or array for column indexing
Call `rlang::last_error()` to see a backtrace


#combine a and b2 
combo <- rbind (a, b2)
Warning message:
In `[<-.factor`(`*tmp*`, ri, value = list(cat2 = c(1, 0, 1, 1, 0,  :
  invalid factor level, NA generated

1 个答案:

答案 0 :(得分:1)

基于class,该列本身就是tbl_df/data.frame。根据{{​​1}},输入参数'x'是factor

  

x-数据向量,通常取少量不同   值。

假设它是单列data.frame,我们可以vector并将其转换为unlist

factor

或与b2$group <- factor( unlist(b2$group)) 一起使用提取

[[