小编con*_*der的帖子

根据名称存储在另一列中的现有列创建新列 (dplyr)

考虑以下数据集:

\n
df <- tibble(v1 = 1:5, v2= 101:105, v3 = c("v1", "v2", "v1", "v2", "v1"))\n\n# A tibble: 5 \xc3\x97 3\n     v1    v2 v3   \n  <int> <int> <chr>\n1     1   101 v1   \n2     2   102 v2   \n3     3   103 v1   \n4     4   104 v2   \n5     5   105 v1  \n
Run Code Online (Sandbox Code Playgroud)\n

我想生成一个新列,该列从 或 中获取值v1v2具体取决于中列出的列v3

\n
    # A tibble: 5 \xc3\x97 4\n     v1    v2 v3       v4\n  <int> <int> <chr> <dbl>\n1     1   101 v1        1\n2     2   102 v2 …
Run Code Online (Sandbox Code Playgroud)

r dplyr

9
推荐指数
4
解决办法
1578
查看次数

data.table:如何将字符向量传递给函数 get data.table 以将其内容视为列名?

这是一个数据表:

library(data.table)
DT <- data.table(airquality)
Run Code Online (Sandbox Code Playgroud)

这个例子产生了我想要的输出:

DT[, `:=`(New_Ozone= log(Ozone), New_Wind=log(Wind))]
Run Code Online (Sandbox Code Playgroud)

如何编写一个函数log_those_columns,使以下代码片段输出相同的结果?

old_names <- c("Ozone", "Wind")
new_names <- c("New_Ozone", "New_Wind")
log_those_columns(DT, old_names, new_names)

Run Code Online (Sandbox Code Playgroud)

请注意,我需要old_names并且new_names足够灵活以包含任意数量的列。

(我从关于这一主题的类似StackOverflow的问题看,答案可能涉及的一些组合.SDwith=Fparse()eval(),和/或substitute(),但我似乎没有指甲要使用的那些和在哪里可以)。

r function data.table

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

标签 统计

r ×2

data.table ×1

dplyr ×1

function ×1