【发布时间】:2020-10-04 22:19:10
【问题描述】:
我刚刚开始使用 R 中的列表,但我遇到了一个似乎无法解决的问题,因为我不知道如何对列表进行子集化或过滤。 我有一个包含 9 个数据框的列表
List of 9
$ :'data.frame': 41999 obs. of 2 variables:
..$ XY_ID : chr [1:41999] "193.722:175.733" "192.895:176.727" "187.065:178.285" "190.754:178.186" ...
..$ CellID: int [1:41999] 0 0 7 0 0 7 8 8 7 8 ...
$ :'data.frame': 42069 obs. of 2 variables:
..$ XY_ID : chr [1:42069] "192.895:176.727" "187.065:178.285" "190.754:178.186" "192.296:178.648" ...
..$ CellID: int [1:42069] 0 7 7 0 8 7 8 8 7 8 ...
$ :'data.frame': 42116 obs. of 2 variables:
..$ XY_ID : chr [1:42116] "192.296:178.648" "178.899:180.92" "182.416:181.265" "186.806:181.434" ...
..$ CellID: int [1:42116] 0 8 8 7 7 8 7 8 7 7 ...
$ :'data.frame': 41976 obs. of 2 variables:
..$ XY_ID : chr [1:41976] "193.722:175.733" "190.654:176.113" "188.362:176.407" "192.895:176.727" ...
..$ CellID: int [1:41976] 0 7 7 0 7 7 7 7 8 7 ...
$ :'data.frame': 41949 obs. of 2 variables:
..$ XY_ID : chr [1:41949] "190.654:176.113" "188.362:176.407" "192.895:176.727" "186.064:177.413" ...
..$ CellID: int [1:41949] 0 0 0 7 7 0 0 7 7 8 ...
$ :'data.frame': 42020 obs. of 2 variables:
..$ XY_ID : chr [1:42020] "190.754:178.186" "192.296:178.648" "189.421:179.012" "186.453:179.2" ...
..$ CellID: int [1:42020] 0 0 0 7 7 7 7 7 8 8 ...
$ :'data.frame': 41902 obs. of 2 variables:
..$ XY_ID : chr [1:41902] "191.802:173.732" "193.722:175.733" "183.882:176.123" "190.654:176.113" ...
..$ CellID: int [1:41902] 0 0 7 0 0 0 8 7 7 0 ...
$ :'data.frame': 42072 obs. of 2 variables:
..$ XY_ID : chr [1:42072] "190.754:178.186" "192.296:178.648" "189.421:179.012" "178.899:180.92" ...
..$ CellID: int [1:42072] 0 0 0 8 7 8 7 7 8 7 ...
$ :'data.frame': 41956 obs. of 2 variables:
..$ XY_ID : chr [1:41956] "193.722:175.733" "190.654:176.113" "188.362:176.407" "192.895:176.727" ...
..$ CellID: int [1:41956] 0 0 7 0 8 7 7 7 7 8 ...
其中第一列是 XY_ID,第二列称为 CellID。 我还有一个带有所有 9 个数据帧(第 1 列)共有的 YX_ID 的向量。我像这样提取了这些常见的 XY_ID:
csv4 <- Reduce(intersect, lapply(csv3, function(x){
x[['XY_ID']]
}))
str(csv4)
chr [1:35368] "192.296:178.648" "182.416:181.265" "186.806:181.434" "188.737:181.429" ...
现在我要做的是为 csv4(向量)中的每个 XY_ID 找到 csv3 中每个数据场的第 1 列(XY_ID)中的匹配项,并打印与之配套的 CellID。
输出应该是这样的:
【问题讨论】:
标签: r dataframe tidyverse purrr