我有一份数据 list .帧,并希望子集数据帧的一部分.

但我面临着这个错误.

有什么 idea 吗?

这里是codedata

> df1 <- data.frame(station = c("MADA1", "MADA2", "MADA3", "MADA4", "MADA5"),
+                  rainfall = c(0, 5, 10, 15, 20),
+                  yield = c(2000, 3000, 4000, 5000, 6000))
> df2 <- df1
> df3 <- df1
> 
> list_1 <- list(df1, df2, df3)
> 
> list_2 <- list(df1, df2, df3)
> 
> mainlist <- list(list_1, list_2)
> names(mainlist) <- c("sublist1", 'sublist2')
> names(mainlist[[1]]) <- c("station", "rainfall", "yield")
> names(mainlist[[2]]) <-  c("station", "rainfall", "yield")
> 
> names(mainlist)
[1] "sublist1" "sublist2"
> names(mainlist[[1]])
[1] "station"  "rainfall" "yield"   
> 
> # subset `rainfall` and `yield` is sublist1 and sublist2 and create a a new list
> mainlist_new <- list()
> mainlist_new[[1]] <- mainlist[[1]][[,2:3]] 
Error in mainlist[[1]][[, 2:3]] : incorrect number of subscripts
> mainlist_new[[2]] <- mainlist[[2]][[,2:3]] 
Error in mainlist[[2]][[, 2:3]] : incorrect number of subscripts
>

推荐答案

如果我们想根据名称将list个元素子集

mainlist_new <- lapply(mainlist, `[`, c("rainfall", "yield"))

-输出

> str(mainlist_new)
List of 2
 $ :List of 2
  ..$ rainfall:'data.frame':    5 obs. of  3 variables:
  .. ..$ station : chr [1:5] "MADA1" "MADA2" "MADA3" "MADA4" ...
  .. ..$ rainfall: num [1:5] 0 5 10 15 20
  .. ..$ yield   : num [1:5] 2000 3000 4000 5000 6000
  ..$ yield   :'data.frame':    5 obs. of  3 variables:
  .. ..$ station : chr [1:5] "MADA1" "MADA2" "MADA3" "MADA4" ...
  .. ..$ rainfall: num [1:5] 0 5 10 15 20
  .. ..$ yield   : num [1:5] 2000 3000 4000 5000 6000
 $ :List of 2
  ..$ rainfall:'data.frame':    5 obs. of  3 variables:
  .. ..$ station : chr [1:5] "MADA1" "MADA2" "MADA3" "MADA4" ...
  .. ..$ rainfall: num [1:5] 0 5 10 15 20
  .. ..$ yield   : num [1:5] 2000 3000 4000 5000 6000
  ..$ yield   :'data.frame':    5 obs. of  3 variables:
  .. ..$ station : chr [1:5] "MADA1" "MADA2" "MADA3" "MADA4" ...
  .. ..$ rainfall: num [1:5] 0 5 10 15 20
  .. ..$ yield   : num [1:5] 2000 3000 4000 5000 6000

R相关问答推荐

将第二个图放置在ggplot 2中另一个图的x轴上

R的法国工作日

是否有任何解决方案可以优化VSCode中RScript的图形绘制?

R形式的一维数字线/箱形图样式图表

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

在数学中正确显示摄氏度、开氏度或华氏度

如何在modelsummary中重命名统计数据?

使用sf或terra的LINESTRAING的累积长度

根据元素和前一个值之间的差值过滤矩阵的元素

根据列A中的差异变异列,其中行由列B中的相对值标识

解析R函数中的变量时出现的问题

如何识别倒排的行并在R中删除它们?

在数据帧列表上绘制GGPUP

自定义gggraph,使geom_abline图层仅在沿x轴的特定范围内显示

在纵向数据集中创建新行

R+reprex:在呈现R标记文件时创建可重现的示例

如何在PrePlot()中将多个元素设置为斜体

在R中的数据框上使用Apply()函数时,如何保留非数字列?

错误包arrowR:READ_PARQUET/OPEN_DATASET&QOT;无法反序列化SARIFT:TProtocolException:超出大小限制&Quot;

以任意顺序提取具有多个可能匹配项的组匹配项