小编Tho*_*ler的帖子

tidyr 仅分离最后 n 个实例

我在 R 中有一个 data.frame,为了简单起见,我想将其中的一列分开。下面的示例使用 tidyr::separate 进行了剪裁,几乎完成了这项工作:

 tmp2 <- data.frame( varTreatName = c(
   "resp_Nadd_belowCanopy", "resp_NPadd_belowCanopy"
   , "resp_sd_Nadd_belowCanopy", "resp_sd_NPadd_belowCanopy"))
 tmp2 %>% separate(
    "varTreatName", c("varName","treatment","canopyPosition")
    , extra = "merge")
Run Code Online (Sandbox Code Playgroud)

产生:

varName treatment    canopyPosition
1    resp      Nadd       belowCanopy
2    resp     NPadd       belowCanopy
3    resp        sd  Nadd_belowCanopy
4    resp        sd NPadd_belowCanopy
Run Code Online (Sandbox Code Playgroud)

多个实例合并到一列中。但请注意,在所描述的情况下,第一个实例 varName 'resp_sd' 包含与分隔要分隔的因素(治疗和 canopyPosition)所使用的分隔符相同的分隔符。但合并仅发生在最后一个实例上。

因此,在上面示例的最后一行中,我希望提取:“resp_sd”、“NPadd”、“belowCanopy”。

如何合并第一个实例而不是最后一个实例,以便仅分离最后 n 个实例?

r tidy

5
推荐指数
1
解决办法
1936
查看次数

如何用dplyr引用变量而不是列

当使用dplyr:filter时,我经常计算一个包含可行选择的局部变量:

df <- as_tibble(data.frame(id=c("a","b"), val=1:6))
ids <- c("b","c")
filter(df, id %in% ids)
# giving id %in% c("b","c")
Run Code Online (Sandbox Code Playgroud)

但是,如果数据集偶然具有相同名称的列,则无法实现预期目的:

df$ids <- "a"
filter(df, id %in% ids)
# giving id %in% "a"
Run Code Online (Sandbox Code Playgroud)

我应该如何明确引用ids变量而不是ids列?

r dplyr

4
推荐指数
1
解决办法
348
查看次数

标签 统计

r ×2

dplyr ×1

tidy ×1