方括号多列 R

2024-03-28

我很困惑。我试图根据两列中的值隔离 df 的某些行。一如既往,我首先在实践数据中尝试这一点。我的代码工作正常。

data1<-df2[df2$fruit=="kiwi" |  df2$fruit=="orange" | df2$fruit=="apple"  & (df2$dates>= "2010-04-01" & df2$dates<  "2010-10-01"), ]

当我在真实数据上尝试相同的代码时,它不起作用。它收集我需要的“水果”,但忽略我的日期范围请求。

 data1<-lti_first[lti_first$hai_atc=="C10AA01" | lti_first$hai_atc=="C10AA03" | lti_first$hai_atc=="C10AA04" | lti_first$hai_atc=="C10AA05" | lti_first$hai_atc=="C10AA07" | lti_first$hai_atc=="C10AB02" |lti_first$hai_atc=="C10AA04" |lti_first$hai_atc=="C10AB08" | lti_first$hai_atc=="C10AX09" & (lti_first$date_of_claim >= "2010-04-01" & lti_first$date_of_claim<"2010-10-01"), ]

我的实践数据和真实数据中的变量结构是exact相同的。 Fruits/hai_atc 是两个 dfs 中的因子,日期是两个 dfs 中的 as.Dates。

为了解决这个问题,我尝试对我的数据进行子集化,但这对我来说也不起作用(但对练习数据有效)

x<-subset(lti_first, hai_atc=="V07AY03" | hai_atc=="A11JC94" & (date_of_claim>="2010-04-01" & date_of_claim<"2010-10-01"))

我究竟做错了什么?对我来说,我的代码看起来是一样的!

样本df

names<-c("tom", "mary", "tom", "john", "mary",
 "tom", "john", "mary", "john", "mary", "tom", "mary", "john", "john")
dates<-as.Date(c("2010-02-01", "2010-05-01", "2010-03-01", 
"2010-07-01", "2010-07-01", "2010-06-01", "2010-09-01",
 "2010-07-01", "2010-11-01", "2010-09-01", "2010-08-01", 
"2010-11-01", "2010-12-01", "2011-01-01"))
fruit<-as.character(c("apple", "orange", "banana", "kiwi",
 "apple", "apple", "apple", "orange", "banana", "apple",
 "kiwi", "apple", "orange", "apple"))
age<-as.numeric(c(60,55,60,57,55,60,57,55,57,55,60,55, 57,57))
sex<-as.character(c("m","f","m","m","f","m","m",
 "f","m","f","m","f","m", "m"))
df2<-data.frame(names,dates, age, sex, fruit)
df2


dput(df2)
structure(list(names = structure(c(3L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 1L, 2L, 3L, 2L, 1L, 1L), .Label = c("john", "mary", "tom"
), class = "factor"), dates = structure(c(14641, 14730, 14669, 
14791, 14791, 14761, 14853, 14791, 14914, 14853, 14822, 14914, 
14944, 14975), class = "Date"), age = c(60, 55, 60, 57, 55, 60, 
57, 55, 57, 55, 60, 55, 57, 57), sex = structure(c(2L, 1L, 2L, 
2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L), .Label = c("f", 
"m"), class = "factor"), fruit = structure(c(1L, 4L, 2L, 3L, 
1L, 1L, 1L, 4L, 2L, 1L, 3L, 1L, 4L, 1L), .Label = c("apple", 
"banana", "kiwi", "orange"), class = "factor")), .Names = c("names", 
"dates", "age", "sex", "fruit"), row.names = c(NA, -14L), class = "data.frame")

**真实数据太大而无法放入 dput,这里是一个 str

str(sample_lti_first)
'data.frame':   20 obs. of  5 variables:
 $ hai_dispense_number: Factor w/ 53485 levels "Patient HAI0000017",..: 22260 22260 2527 24311 24311 24311 24311 13674 13674 13674 ...
 $ sex                : Factor w/ 4 levels "F","M","U","X": 2 2 2 1 1 1 1 1 1 1 ...
 $ hai_age            : int  18 18 27 40 40 40 40 28 28 28 ...
 $ date_of_claim      : Date, format: "2009-10-09" "2009-10-09" "2009-10-18" ...
 $ hai_atc            : Factor w/ 1038 levels "","A01AA01","A01AB03",..: 144 76 859 80 1009 1009 859 81 1008 859 ...

我认为扩展@Aaron 的评论很重要。您遇到的问题是由于使用的所有 OR 语句周围缺少括号引起的%in%避免,并不是 OR 语句在 extract 函数中不起作用[。你的玩具示例实际上并没有完全按照你想要的方式工作 - 有一个orange带日期的水果2010-12-01。其他问题没有出现只是偶然。

这段代码中布尔逻辑的读取方式

df2[df2$fruit=="kiwi" |  df2$fruit=="orange" | df2$fruit=="apple"  & (df2$dates>= "2010-04-01" & df2$dates<  "2010-10-01"), ]

is:

我想要 df2 的所有行,其中水果是猕猴桃,所有行,其中水果是 橙色,以及水果为苹果且日期为的所有行 2010年3月31日至2010年10月1日之间。

这就是您得到的结果 - 只有苹果被截断到适当的日期范围。实际上,玩具数据集中的日期范围之外没有猕猴桃。

现在添加一对括号:

df2[(df2$fruit=="kiwi" |  df2$fruit=="orange" | df2$fruit=="apple")  & (df2$dates >= "2010-04-01" & df2$dates <  "2010-10-01"), ]

这段代码说:

我想要 df2 的所有行,其中水果是猕猴桃、橙子或苹果,并且 日期介于 3/31/2010 和 10/1/2010 之间。

综上所述,%in%绝对是要走的路。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

方括号多列 R 的相关文章

  • 循环更改多个数据帧

    例如 我有这三个数据集 就我而言 它们更多并且有很多变量 data frame1 lt data frame a c 1 5 3 3 2 b c 3 6 1 5 5 c c 4 4 1 9 2 data frame2 lt data fra
  • 使用 Visual Studio 构建 R 包 (C API)

    我正在尝试使用 Visual Studio 构建一个简单的 R 包 这是我的代码 include
  • 如何使用 R / igraph 设置边缘颜色和顶点间距

    我是 R 新手 试图弄清楚如何为我有数据的系统制作社交网络地图 我已经设法从常见问题解答和教程中弄清楚我想做的大部分事情 但我被困在两件事上 如何使画布更大 图表间隔更大 现在已经太挤了 目前 边缘厚度是根据重量设置的 权重代表不同的状态
  • 通过变量分割 data.frame [重复]

    这个问题在这里已经有答案了 我将多个主题的数据存储在一个 CSV 文件中 导入 CSV 文件后 我想将每个参与者的数据拆分到自己的 data frame 中 更确切地说 我想采用下面的示例数据 并创建三个新的 data frames 每个
  • 在绘图中的所有坐标之间绘制线条

    我有以下数据框 data lt data frame x c 5 1 3 2 5 7 12 y c 5 7 6 1 3 5 6 我可以使用 ggplot 函数绘制这些坐标 并在这些坐标之间画一条线 ggplot data aes x y g
  • PCA 图中带有名称的工具提示

    我想用 ggplotly 生成交互式绘图 工具提示应该显示变量的名称 interactive lt ggplotly pca dynamicTicks T tooltip c x y label list pca 是 PCA 的可视化 su
  • 错误:“tidyverse”的包或命名空间加载失败:“namespace:dplyr”未导出对象“relocate”

    我使用以下命令安装了 tidyverse install packages tidyverse 但是安装后 当我使用以下命令调用库时 library tidyverse 我收到此错误 Error package or namespace l
  • 列表列中的设置操作

    我正在尝试做集合运算在存储在列表列中的向量之间 例如this https stackoverflow com questions 38712196 text file to dataframe with a list column DT l
  • R 中的优化函数可以接受目标、梯度和粗麻布吗?

    我有一个想要优化的复杂目标函数 优化问题需要相当长的时间来优化 幸运的是 我确实有可用的函数的梯度和粗麻布 R 中是否有一个优化包可以接受所有这三个输入 optim 类不接受 Hessian 矩阵 我已经扫描了用于优化的 CRAN 任务页面
  • 自动化 RStudio 处理 RMarkdown?

    我有一个 RMarkdown 文件 用于生成漂亮的 HTML 报告 问题是 我希望能够自动化它 以便它可以在无头服务器上运行 因此 不会有人启动 Rstudio 并按下 knithtml 按钮 而且 Rstudio 似乎正在做很多额外的魔法
  • 添加有关白天/黄昏/夜晚/黎明的信息以在 R 中跟踪数据

    我有一个数据集 其中包含几个月的日期时间 纬度和经度变量的跟踪数据 如下所示 gt start lt as POSIXct 2018 08 01 00 00 00 format Y m d H M S tz UTC gt datetime
  • 更改列的顺序

    我正在处理一个包含 gt 40 列的大型数据框 我希望能够移动列 而不必指定所有列名称 例如 a lt c 1 5 b lt c 4 3 2 1 1 Percent lt c 40 30 20 10 10 Labels lt c Cat D
  • 当按多列分组时,如何命名 dplyr 中的 group_split 列表

    我在 dplyr 中使用 group split 在分割了多个列后 我很难命名列表 当我们按一列分组时 我知道该怎么做here https stackoverflow com questions 57107721 how to name t
  • 将阿拉伯文本分配给 R 变量

    R 无法正确显示阿拉伯文本 当我使用阿拉伯语时 我得到了非常奇怪的东西 这是一个屏幕截图 问题是我想创建一个带有阿拉伯文本的词云 我需要首先解决这个问题 R 版本 R 2 15 2 GUI 1 53 Leopard 版本 64 位 6335
  • 如何处理重叠的因子水平? (例如,生成表格和图表时)

    我面临一个数据集的问题重叠因素水平 我想按因素级别生成时间线 条形图和统计数据 但是 我希望因子水平是模棱两可的 这意味着属于多个级别的观察结果应该在图中出现多次 这是我的数据结构的示例 head lt c ID YEAR BRAZIL G
  • 在 r 中的 unique() 函数中使用管道不起作用

    我在使用管道运算符 gt 和 unique 函数时遇到一些麻烦 df data frame a c 1 2 3 1 b a unique df a no problem here df gt unique a not working her
  • 完全缺失列的 VaR 计算

    我需要计算股票收益的滚动 VaR 从这篇文章 使用rollapply函数使用R进行VaR计算 https stackoverflow com questions 25045612 using rollapply function for v
  • 为什么 rbind 会抛出警告

    这与是否有更优雅的方法将不规则的数据转换为整洁的数据框 https stackoverflow com questions 25102617 are there more elegant ways to transform ragged d
  • R 的 dplyr 切片中的奇怪行为

    打电话时slice df i 在 R 的 dplyr 包中 如果我要求的行索引不存在 nrows lt i 它似乎返回除组中的第一行之外的所有行 就像我调用的那样slice df 1 例如 library dplyr c1 lt c a b
  • 为 ggplot 定义新的尺度轴变换

    我正在尝试创建一个squared使用 y 轴变换scales trans new但遇到错误 MWE data data frame x 1 10 y runif 10 z rnorm 10 10 library ggplot2 ggplot

随机推荐

  • TypeError:注册不是在React中使用React Hook Form的函数

    The Error Message If i dont use the Inputs inside div then it works perfectly but when i use Input inside div it shows m
  • Spring SseEmitter 导致响应提交后无法转发异常

    给定一个简单的控制器 其方法如下 RequestMapping method RequestMethod GET value id update public ResponseEntity
  • 如何使用 karma 在测试文件之间共享模拟?

    我正在一个有角度的应用程序中工作 其中许多测试文件共享相同的模拟 我想知道如何提取这些模拟并将它们放入单独的文件中 我尝试创建一个对象并在测试中重用它 但出现异常 ReferenceError 找不到变量 需要 业力文件 module ex
  • 使用 jQuery 检查 div 是否隐藏

    这是我的div div style display none div 然后我有一个显示按钮 当您单击时将显示 div show click function car2 show 所以现在我想检查 div 是否 car2在表单提交之前仍然隐藏
  • 如何使用键盘快捷键转到 VS Code 中的下一个错误(不是下一个问题)?

    In VS Code the F8 keyboard shortcut takes you to the next problem Problems can be errors warnings or info I want to cycl
  • 每组平均值以及组中变量的数量[重复]

    这个问题在这里已经有答案了 我想生成一个表 其中包含每个范围的组 每个组中变量的平均值和计数 我有一个如下所示的 data frame Variable Shap 1 0 10 6 0 50 7 0 30 5 0 40 9 0 10 9 0
  • 在后台停止音频

    有一个名为 IHeartRadio 的应用程序 可让您设置睡眠计时器 该计时器将在指定的时间间隔后关闭音频 您首先选择要收听的电台 然后选择睡眠时间 之后广播电台将停止播放 应用程序不需要位于前台即可发生这种情况 应用程序如何在后台停止音频
  • 在 Gatsby 上运行 SASS 不起作用

    昨天 我能够设置 gatsby 的入门包实例并部署到 github 页面 从那时起 我在本地更新了我的react js 文件 这似乎在本地运行良好 现在我想编译我的 sass 我找不到有效的解决方案 这是我尝试安装的 sass 编译器 sa
  • Python 定时脚本

    如何让 python 脚本每天在设定的时间运行 确切地说是下午 2 00每天 有没有办法让它每天运行两次 不太确定从哪里开始 谢谢您的帮助 不要重新发明和使用任何系统上已有数十年的功能 cron 除此之外 PyPI 列出了一堆与 cron
  • 如何使用 imaplib 创建电子邮件并将其发送到特定邮箱

    我正在尝试使用 python 的 imaplib 创建一封电子邮件并将其发送到具有特定名称的邮箱 例如收件箱 任何人都有一些很好的建议 IMAP 协议不是为发送电子邮件而设计的 它旨在操纵邮箱 要创建电子邮件并发送它 您可以使用 SMTP
  • 以编程方式绘制气泡

    I would like to have a bubble with a precentage value in my app I can t use 9 patches as i want it to be customizable an
  • 数据集排序

    In DataTable我可以排序 dataTable DefaultView Sort SortField DESC 我得到了一个DataSet从数据库中 我想知道我可以对DataSet就像我做的那样DataTable 您仍然可以从数据集
  • 如何集成测试两个 Rails 应用程序

    我们有两个独立的 Ruby on Rails 应用程序 一个接受上传的文件 另一个根据另一个应用程序收到的上传生成文件 我们正在尝试整合端到端黑盒回归和集成测试 以证明当您将某个文件上传到第一个应用程序时 您可以指望从另一个应用程序中获取某
  • 为什么音频可视化直播无法在移动设备/Safari 上运行?

    我正在尝试基于 Three js 示例制作音频直播可视化工具 https trijs org examples q visua webaudio visualizer https threejs org examples q visua w
  • JSON回发到c# webmethod添加文字控制

    我正在学习 webmethods 并使用 JSON 发回给它们 我在下面得到了以下内容 但它说找不到 webmethod 404 不知道我哪里出错了 谢谢 在页面 JavaScript 中
  • 根据两列的值选择 pandas 数据框行

    我希望根据两列值选择一些特定行 例如 d user 1 2 3 4 item 5 6 7 8 f1 9 16 17 18 f2 4 5 6 5 f3 4 5 5 8 df pd DataFrame d print df Out f1 f2
  • 多个ViewModel之间的数据共享

    进一步我的问题如何绑定多个型号的 Bing 图钉 https stackoverflow com questions 7305582 how can i bind bing pushpins from multiple models 这对我
  • 如何获取组件中的列表值?

    例如 我导入了一个名为
  • PHP 7 - 不支持声明“strict_types”

    我在一个小项目中使用 PHP 7 也在我的本地和生产服务器中使用相同的配置 一切都在我的本地服务器上工作 但在完成 LAMP 设置后在生产服务器上我无法在 etc php 7 0 apache 下找到 apache 文件夹 所以我遇到了内部
  • 方括号多列 R

    我很困惑 我试图根据两列中的值隔离 df 的某些行 一如既往 我首先在实践数据中尝试这一点 我的代码工作正常 data1 lt df2 df2 fruit kiwi df2 fruit orange df2 fruit apple df2