小编Tea*_*ree的帖子

如何使用 dplyr::relocate 一步重新定位多个列?

我想使用 dplyr::relocate 对某些列重新排序,使其位于特定的其他列之后。这是一个 MWE:

a <- letters[1:3]
b <- letters[4:6]
c <- letters[7:9]
d <- letters[10:12]

mytib <- tibble::tibble(a,b,c,d)

#  A tibble: 3 x 4
#  a     b     c     d    
#  <chr> <chr> <chr> <chr>
# 1 a     d     g     j    
# 2 b     e     h     k    
# 3 c     f     i     l    

mytib %>%
     relocate(c, .after = a)
Run Code Online (Sandbox Code Playgroud)

这个例子有效,但是有没有一种方法可以通过一个重定位命令将 c 移到 a 之后,例如将 d 移到 b 之后?

我尝试了以下操作但没有成功:

mytib %>%
     relocate(c(c, d), .after(c(a, b)))
Run Code Online (Sandbox Code Playgroud)

编辑1:我明确询问relocate,因为像这样的函数select不适用于大型数据集,我所知道的是在我想要插入列的哪一列(名称)之后。 …

r dplyr

10
推荐指数
1
解决办法
8220
查看次数

如何将多个必要的模式传递给 str_subset?

我试图使用 stringr::str_subset 函数在字符向量中查找与两个单词不特定顺序匹配的元素,而不仅仅是其中的任何一个单词。换句话说,我正在寻找两个单词的交集,而不是并集。

我尝试使用“或”(|) 运算符,但这只会给我两个单词之一,并返回太多结果。我还尝试仅传递一个字符向量,其中两个单词作为模式参数。这只会返回“较长对象长度不是较短对象长度的倍数”的错误,并且仅返回与两个单词中的第二个单词匹配的值。

character_vector <- c("abc ghi jkl mno def", "pqr abc def", "abc jkl pqr")
pattern <- c("def", "pqr")

str_subset(character_vector, pattern)
Run Code Online (Sandbox Code Playgroud)

我正在寻找仅返回字符向量的第二个元素的模式,即“pqr abc def”。

regex r stringr

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

如何使用 curly curly 将值转换为数字并过滤掉函数内的 NA?

我想获取一个 tibble (或数据框),将其中一列转换为数字,仅选择同一列加上第三列,然后过滤掉 NA。

\n

给出以下数据:

\n
library(tidyverse)\n\nset.seed(1) \n\nmytib <- tibble(a = as.character(c(1:5, NA)), \n                b = as.character(c(6:8, NA, 9:10)), \n                c = as.character(sample(x = c(0,1), size = 6, replace = TRUE)))\n\nvars <- c("a", "b")\n
Run Code Online (Sandbox Code Playgroud)\n

我创建了以下函数

\n
convert_tib <- function(var, tib){\n  tib <- tib %>% \n    mutate("{var}" = as.numeric({{ var }})) %>%\n    dplyr::select({{ var }}, c) %>%\n    filter(!is.na({{ var }}))\n  return(tib)\n}\n
Run Code Online (Sandbox Code Playgroud)\n

并使用 purrr:map 运行它

\n
map(vars, ~ convert_tib(var = ., tib = mytib))\n
Run Code Online (Sandbox Code Playgroud)\n

遗憾的是,此代码的输出不会将向量转换为数字,也不会过滤掉 NA。我尝试了许多不同的策略,例如函数内部的ensym(var)and …

r dplyr rlang

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

剪切函数返回间隔的NA

我正在尝试使用cut函数来创建年龄间隔.不幸的是,我收到了与第一次休息的下端匹配的值的NA.

例如:

AGE <- sample(18:50, 100, replace = TRUE)
AGE_GROUPS <- cut(AGE, breaks = c(18, 27, 36, 45))
DF <- data.frame(AGE, AGE_GROUPS)
Run Code Online (Sandbox Code Playgroud)

对于AGE为18且大于45的所有值,我在AGE_GROUPS变量中接收NA.如何确保AGE_GROUPS中的最低括号包括18,如何确保最高括号包括> = 45的所有值?

cut r

2
推荐指数
1
解决办法
2163
查看次数

如何将值附加到嵌套字典?

我正在尝试创建一个嵌套在字典中的列表并向其附加值。在python中,我会写以下内容:

samples = {'x' : [1], 'y' : [-1]}
Run Code Online (Sandbox Code Playgroud)

并在 for 循环中附加值:

samples['x'].append(new_value)
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 Julia 中实现等价的东西?

julia

2
推荐指数
1
解决办法
78
查看次数

如何创建具有渐变颜色的线条?

我想在一个球体和另一个球体之间画一条线。该线的颜色应从第一个球体的颜色更改为下一个球体的颜色。我怎么做?

processing

0
推荐指数
1
解决办法
440
查看次数

标签 统计

r ×4

dplyr ×2

cut ×1

julia ×1

processing ×1

regex ×1

rlang ×1

stringr ×1