我正在尝试组合数据框并统一它们之间的列类。
我在将一栏转换为一个因子时遇到问题。
我尝试使用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
答案 0 :(得分:1)
基于class
,该列本身就是tbl_df/data.frame
。根据{{1}},输入参数'x'是factor
x-数据向量,通常取少量不同 值。
假设它是单列data.frame,我们可以vector
并将其转换为unlist
factor
或与b2$group <- factor( unlist(b2$group))
一起使用提取
[[