Lia*_*a_G 5 r dataframe tibble
有没有办法使用变量来命名 tibble 的列?Clade例如,我想命名下面的第一列。我尝试过paste()和assign(),但这两个功能似乎都没有达到我想要的效果。
CLADE_FIELD = "Clade"
LINEAGE_FIELD = "Lineage"
metaDF = tibble(CLADE_FIELD = c("G"),
LINEAGE_FIELD = c("B.666"),
"Submission date" = c("2020-03"))
Run Code Online (Sandbox Code Playgroud)
我在单元测试中使用此代码,这就是我人为创建此 tibble 的原因。该名称引用了 csv 中的列名称,如果该列名称发生更改,我希望代码能够轻松维护。
Ano*_*n R 10
您可以使用以下解决方案:
!!,强制对其后续名称进行评估:=而不是=等效的,并提示您在其上提供名称(与我们的变量名称相同)LHS(左侧)CLADE_FIELD = "Clade"
LINEAGE_FIELD = "Lineage"
metaDF = tibble(!!CLADE_FIELD := c("G"),
!!LINEAGE_FIELD := c("B.666"),
"Submission date" = c("2020-03"))
# A tibble: 1 x 3
Clade Lineage `Submission date`
<chr> <chr> <chr>
1 G B.666 2020-03
Run Code Online (Sandbox Code Playgroud)
或者我们可以使用双大括号,{{}}如下所示:
metaDF = tibble({{CLADE_FIELD}} := c("G"),
{{LINEAGE_FIELD}} := c("B.666"),
"Submission date" = c("2020-03"))
# A tibble: 1 x 3
Clade Lineage `Submission date`
<chr> <chr> <chr>
1 G B.666 2020-03
Run Code Online (Sandbox Code Playgroud)
或者我们可以利用glue语法将变量名称放在一对大括号内{},并将结果作为字符串传递。由于粘合语法在任何对象(这里是变量名)的 LHS 上可用,:=您放在大括号内的对象将被评估为 R 代码:
metaDF = tibble("{CLADE_FIELD}" := c("G"),
"{LINEAGE_FIELD}" := c("B.666"),
"Submission date" = c("2020-03"))
# A tibble: 1 x 3
Clade Lineage `Submission date`
<chr> <chr> <chr>
1 G B.666 2020-03
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2415 次 |
| 最近记录: |