[英]How to coerce a character column to a list column
我正在尝试绑定数据帧行。 聚合后,我用列表列生成了一些数据框,但有些是字符。 我找不到绑定它们的方法。 我尝试使用as.list()
转换字符列,但这没有用。
library(dplyr)
df1 <- data.frame(a = c(1,2,3),stringsAsFactors = F)
df1$b <- list(c("1","2"),"4",c("5","6"))
> df1
a b
1 1 1, 2
2 2 4
3 3 5, 6
df2 <- data.frame(a=c(4,5),b=c("9","12"),stringsAsFactors = F)
> df2
a b
1 4 9
2 5 12
dplyr::bind_rows(df2,df1)
Error in bind_rows_(x, .id) :
Column `b` can't be converted from character to list
我不太了解dplyr
库,但是使用下面的基数R的rbind()
似乎有效:
df1 <- data.frame(a = c(1,2,3),stringsAsFactors = F)
df1$b <- list(c("1","2"),"4",c("5","6"))
df2 <- data.frame(a=c(4,5),b=c("9","12"),stringsAsFactors = F)
result <- rbind(df1, df2)
class(result$a)
[1] "numeric"
class(result$b)
[1] "list"
如果您想使用bind_rows()
此操作, bind_rows()
查看错误消息。 看起来dplyr
不喜欢一个数据帧具有字符数据,而另一个数据帧具有列表数据。 您可以尝试将字符列转换为列表,然后调用bind_rows
,例如
df2$b <- as.list(df2$b)
dplyr::bind_rows(df2,df1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.