r - 四个特定行的子集 tibble
问题描述
我有一个名为 Alabama 的 tibble,有 31 行,我想要一个仅由第 1、11、21、31 行组成的新 tibble。这些行位于名为 Year 的列中,值分别为 1970、1980、1990、2000
我努力了
al_decades <- filter(Alabama, Year==1970 && Year==1980 && Year==1990 && Year==2000)
和
al_decades <- subset(Alabama, Year==1970 && Year==1980 && Year==1990 && Year==2000)
但都没有奏效。
解决方案
我们需要%in%
而不是==
library(dplyr)
new <- filter(Alabama, Year %in% c(1970, 1980, 1990, 2000))
或者代替&
(not &&
),用于|
检查多个元素,因为“年份”在同一行中不会有不同的年份
new <- filter(Alabama, (Year == 1970)|(Year == 1980)|(Year == 1990)|(Year == 2000))
或者如果我们只对几十年感兴趣,那么另一种选择是
new <- filter(Alabama, Year %%10 == 0)
如果我们知道位置,另一种选择是slice
new <- Alabama %>%
slice(c(1, 11, 21, 31))
或filter
与row_number()
new <- Alabama %>%
filter(row_number() %in% c(1, 11, 21, 31))
或使用data.table
library(data.table)
setDT(Alabama, key = 'Year')[J(c(1970, 1980, 1990, 2000))]
中base R
,我们可以使用subset
subset(Alabama, Year %in% c(1970, 1980, 1990, 2000))
推荐阅读
- javascript - 视频仅播放音频
- vue.js - 如何使用 caddy 和 vuejs 设置反向代理
- azure - 找不到 Data Lake Store Gen2
- node.js - 如何在 NodeJS 中使用另一个 API 结果发出 API 请求?
- javascript - 单击按钮后清除文件上传字段
- python - 在 pyspark 中写入 parquet 时删除分区列
- powerbi - Power BI 计数低于中值的行数
- python - docopt 解析不返回预期的字典
- c - 可以修改 C 中的字符串文字吗?
- php - 如何使用 DomPDF 调用 loadview() 两次或更多次