我正在嘗試使用給定變數名稱的粘貼來參考我的資料框中的列,并且該列未被識別。下面是我嘗試使用的示例資料框和變數名稱:
arm <- "ARM"
ex_df <- data.frame(col1 = c("A","B","C"), col2 = c("X","Y","Z"), ARM_1 = c(1,2,3), ARM_2 = c(4,5,6,), ARM_3 = c(7,8,9), ARM_4 = c(0,0,0))
ex_df %>%
transmute(col1 = col1, col2 = str_to_title(col2), paste0(arm,"_",4) = paste0(arm,"_",1) paste0(arm,"_",2) paste0(arm,"_",3)) %>%
arrange(col1,col2)
Error: unexpected '=' in:
"col2 = str_to_title(col2),
paste0(arm,"_",4) = "
所需的輸出應為 ARM_4 = ARM_1 ARM_2 ARM_3 并輸出每列值的總和。
謝謝您的幫助。
uj5u.com熱心網友回復:
我們可以在存盤值的列上使用:=with !!-rowSumsstarts_witharm
library(dplyr)
library(stringr)
ex_df %>%
transmute(col1 = col1, col2 = str_to_title(col2),
!!paste0(arm,"_",4) := rowSums(across(starts_with(arm)), na.rm = TRUE))
-輸出
col1 col2 ARM_4
1 A X 12
2 B Y 15
3 C Z 18
注意:與- 1)使用2) 處理超過 10 個“ARM”列時的緊湊選項rowSums相比會更好 NAna.rm = TRUE
如果我們想獲取列的值paste
ex_df %>%
transmute(col1 = col1, col2 = str_to_title(col2),
!!paste0(arm,"_",4) := .data[[paste0(arm,"_",1)]]
.data[[paste0(arm,"_",2)]]
.data[[paste0(arm,"_",3)]]) %>%
arrange(col1,col2)
-輸出
col1 col2 ARM_4
1 A X 12
2 B Y 15
3 C Z 18
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/496086.html
