首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为列表中包含数值的任何行设置数据框的子集?

如何为列表中包含数值的任何行设置数据框的子集?
EN

Stack Overflow用户
提问于 2019-10-17 03:08:51
回答 2查看 194关注 0票数 0

我有一个有26列和1000行的数据框。我有一个包含20个值的列表。我只想选择数据框中包含列表中任意(一个或多个)值的行。

我尝试过子集和子集+过滤器函数。以下是值的列表:

代码语言:javascript
复制
dx.codes <- c(4140 , 4111 , 4118 , 41181 , 41189 , 412 , 4130 , 4131 , 4139 , 4140 , 41400 , 41401 , 41406 , 4142 , 4143 , 4144 , 4148 , 4149 , "V4581", "V4582")

df <- subset(sample.df, subset.df[1:1000, ] %in% dx.codes)

该子集返回一个新的数据帧,但没有任何观测值。看一下初始数据框,我知道有包含这些值的行,但是我无法让它们显示在新的数据框中。

EN

回答 2

Stack Overflow用户

发布于 2019-10-17 03:14:33

假设在26列中的任何一列中都可以找到这20个值,您可以使用以下代码:

代码语言:javascript
复制
library(tidyverse)

df %>%
  filter_all(any_vars(. %in% dx.codes))
票数 1
EN

Stack Overflow用户

发布于 2019-10-17 03:22:49

使用base R,您可以使用sapply检查数据帧中每个单元的每个代码,然后使用rowSums创建索引:

代码语言:javascript
复制
df1 <- as.data.frame(matrix(sample(1:52000, 26000), nrow = 1000), stringsAsFactors = F)

df1[rowSums(sapply(df1, `%in%`, dx.codes)) > 0,]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58420168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档