R 按现有对象子集数据帧
我有一个预定义的对象等级您可以使用过滤器,但您可能希望更改对象名称,使其与变量名称不匹配R 按现有对象子集数据帧,r,subset,R,Subset,我有一个预定义的对象等级您可以使用过滤器,但您可能希望更改对象名称,使其与变量名称不匹配 Grade <- "G3" data <- data.frame("id"=id,"grade"=grade, "score"=score) %>% filter(paste0("G", grade) == Grade) 有了tidyverse,我们可以使用!!要检查全局环境中的“grade”对象而不是“data”环境中的列,请删除“G”并执行以下操作:== 您可以使用readr的
Grade <- "G3"
data <- data.frame("id"=id,"grade"=grade, "score"=score) %>%
filter(paste0("G", grade) == Grade)
有了tidyverse,我们可以使用!!要检查全局环境中的“grade”对象而不是“data”环境中的列,请删除“G”并执行以下操作:==
您可以使用readr的parse_number以最小的复杂度从字符串中提取数字,然后使用结果子集:
图书馆阅读器
数据[数据$grade==parse_numbergrade,]
或使用基本R的子项将非数字替换为:
数据[数据$grade==sub[^0-9],等级,]
或者,如果字符串中唯一的其他字符始终为G,则:
数据[数据$grade==子组,等级,]
我试图从坡度对象G3中获取3,然后根据该坡度对象信息对数据进行子集。我认为您正在尝试将G粘贴到数据$grade。
> data
id grade score
1 1 3 10
2 2 3 5
Grade <- "G3"
data <- data.frame("id"=id,"grade"=grade, "score"=score) %>%
filter(paste0("G", grade) == Grade)
library(dplyr)
library(stringr)
data %>%
filter(grade == str_remove(!!grade, "G"))
# id grade score
#1 1 3 10
#2 2 3 5