当涉及到R时,我对编程非常陌生,我认为我对我想要做的事情一无所知。我有一个包含9个项目的列表,每个项目由1列组成,其中包含大约50个项目作为字符。我想将列表中的每个tibble与另一个1列tibble进行比较。我已经知道没有一个是相同的,但一些值是相同的。因此,我希望每次比较都返回一个TRUE或FALSE值的列表,这取决于是否在单个tibble中找到了tibble列表中的每个值。像我在%中使用的%一样,单独比较两个tibble是很容易的,但困难的部分是迭代通过tibble列表进行比较,而不必使用%in%命令一次比较一个。
这是我到目前为止尝试过的:
mapply(function(x,y){any(x %in% y)}, tibble_list, single_tibble)因为它们不相等,所以这只比较了两个变量之间的差异并返回FALSE。
for (val in tibble_list) {val$Column.Name %in% single_tibble$Column.Name}这完美地打印出了所有内容,但是当我尝试存储这些值时,它只存储了最后一次迭代。
我怀疑可以使用map函数,但正如我所说的,我是R的新手,这与Python非常不同。
谢谢!
发布于 2020-04-30 04:34:22
如果它是tibble_list中的单个列,为了与'single_tibble‘列进行比较,我们可以使用lapply或map (来自purrr)
out <- lapply(tibble_list, function(dat) dat$Column.Name %in% single_tibble$Column.Name)在for循环中,我们需要将每次迭代的输出赋给list
out1 <- vector('list', length(tibble_list))
for (i in seq_along(tibble_list)) {
out1[[i]] <- tibble_list[[i]]$Column.Name %in% single_tibble$Column.Name
}https://stackoverflow.com/questions/61504818
复制相似问题