我想使用 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不适用于大型数据集,我所知道的是在我想要插入列的哪一列(名称)之后。 …
我试图使用 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”。
我想获取一个 tibble (或数据框),将其中一列转换为数字,仅选择同一列加上第三列,然后过滤掉 NA。
\n给出以下数据:
\nlibrary(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")\nRun Code Online (Sandbox Code Playgroud)\n我创建了以下函数
\nconvert_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}\nRun Code Online (Sandbox Code Playgroud)\n并使用 purrr:map 运行它
\nmap(vars, ~ convert_tib(var = ., tib = mytib))\nRun Code Online (Sandbox Code Playgroud)\n遗憾的是,此代码的输出不会将向量转换为数字,也不会过滤掉 NA。我尝试了许多不同的策略,例如函数内部的ensym(var)and …
我正在尝试使用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的所有值?
我正在尝试创建一个嵌套在字典中的列表并向其附加值。在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 中实现等价的东西?