我在下面列出了一个 list ,我不想做的是将df2中的class(Category)改为class(Category).代码应该更改类(类别),并在list()对象中为其分配类别.如何绕过这一点?在此之前,我非常感谢您.

df1 <- data_frame(ID = paste0(LETTERS[1],1:4), valueA = seq(0.1,0.4,0.1), Category= "Apples" )
df2 <- data_frame(ID = paste0(LETTERS[1],5:8), valueB = seq(0.1,0.4,0.1),  Category= seq(0.1,0.4,0.1))
df3 <- data_frame(ID = paste0(LETTERS[1],9:12), valueC = seq(0.1,0.4,0.1),  Category= "Apples3")

list1 <- list(df1, df2, df3);list1
bind_rows(list1)

Error in `bind_rows()`:
! Can't combine `..1$Category` <character> and `..2$Category` <double>.
Run `rlang::last_trace()` to see where the error occurred.

推荐答案

我们可以将所有列转换为character,然后自动将类型更改为type.convert

library(purrr)
library(dplyr)
 map_dfr(list1, ~ .x %>% 
  mutate(across(everything(), as.character))) %>% 
  type.convert(as.is= TRUE)

-输出

# A tibble: 12 × 5
   ID    valueA Category valueB valueC
   <chr>  <dbl> <chr>     <dbl>  <dbl>
 1 A1       0.1 Apples     NA     NA  
 2 A2       0.2 Apples     NA     NA  
 3 A3       0.3 Apples     NA     NA  
 4 A4       0.4 Apples     NA     NA  
 5 A5      NA   0.1         0.1   NA  
 6 A6      NA   0.2         0.2   NA  
 7 A7      NA   0.3         0.3   NA  
 8 A8      NA   0.4         0.4   NA  
 9 A9      NA   Apples3    NA      0.1
10 A10     NA   Apples3    NA      0.2
11 A11     NA   Apples3    NA      0.3
12 A12     NA   Apples3    NA      0.4

或者我们可以nest

map_dfr(list1, ~ .x %>% nest(data = Category))

-输出

# A tibble: 12 × 5
   ID    valueA data             valueB valueC
   <chr>  <dbl> <list>            <dbl>  <dbl>
 1 A1       0.1 <tibble [1 × 1]>   NA     NA  
 2 A2       0.2 <tibble [1 × 1]>   NA     NA  
 3 A3       0.3 <tibble [1 × 1]>   NA     NA  
 4 A4       0.4 <tibble [1 × 1]>   NA     NA  
 5 A5      NA   <tibble [1 × 1]>    0.1   NA  
 6 A6      NA   <tibble [1 × 1]>    0.2   NA  
 7 A7      NA   <tibble [1 × 1]>    0.3   NA  
 8 A8      NA   <tibble [1 × 1]>    0.4   NA  
 9 A9      NA   <tibble [1 × 1]>   NA      0.1
10 A10     NA   <tibble [1 × 1]>   NA      0.2
11 A11     NA   <tibble [1 × 1]>   NA      0.3
12 A12     NA   <tibble [1 × 1]>   NA      0.4

R相关问答推荐

返回句子中最长的偶数长单词

R中的滞后累积量

使用lares::corr_var函数在for循环中分配变量的问题

geom_raster不适用于x比例中超过2,15的值

从多个前置日期中获取最长日期

更改Heatmap Annotation对象的名称

如何删除R中除某些特定名称外的所有字符串?

抖动点与嵌套类别变量箱形图的位置不对齐

如何根据组大小应用条件过滤?

使用strsplit()将向量操作为数据框

R:从geom_ol()中删除轮廓并导出为pdf

如何在科学记数法中显示因子

识别连接的子网(R-igraph)

具有重复元素的维恩图

将向量元素重新排序为R中的第二个

按组计算列中1出现的间隔年数

在R中使用列表(作为tibble列)进行向量化?

将列的值乘以在不同数据集中找到的值

减少雨云面之间的间距并绘制所有统计数据点

如何为混合模型输出绘制不同的线型?