[英]Recode numeric variables
我已經搜索了幾個幫助頁面並已經回答了問題,但是當我嘗試重新編碼多列時仍然收到錯誤消息。
示例數據集:
test <- tibble (
a_test = c(7,6,5,4),
b_test = c(7,7,5,3),
c_test = c(7,3,7,5),
d_test = c(7,7,7,7)
)
test %>%
mutate(across(vars(contains('test')), recode, "1" = "7", "2" = "6", "3" = "5", "4" = "4", "5" = "3", "6" = "2", "7" = "1")
運行此代碼后,我收到以下錯誤消息:
mutate()
錯誤:! 計算..1 = across(...)
時出現問題。 由across()
中的錯誤引起: 。 必須使用有效的下標向量對列進行子集化。 x 下標有錯誤的類型quosures
。 i 它必須是數字或字符。
非常感謝你的幫助。 提前致謝!
您應該刪除vars
參數,添加波浪號 ( ~
),並以.x
開始您的recode
語句。
test %>%
mutate(across(contains("test"), ~
recode(.x, "1" = "7", "2" = "6", "3" = "5", "4" = "4", "5" = "3", "6" = "2", "7" = "1")))
# A tibble: 4 × 4
a_test b_test c_test d_test
<chr> <chr> <chr> <chr>
1 1 1 1 1
2 2 1 5 1
3 3 3 1 1
4 4 5 3 1
感謝你的回復。 我再次嘗試了您的代碼(沒有更改我的 R 版本)但現在收到錯誤消息:
mutate()
中的錯誤:! 計算..1 = across(...)
時出現問題。 由across()
中的錯誤引起:! 計算列a_test
時出現問題。 由recode()
中的錯誤引起:! 未使用 arguments( 1
=“7”, 2
=“6”, 3
=“5”, 4
=“4”, 5
=“3”, 6
=“2”, 7
=“1”)運行rlang::last_error()
查看錯誤發生的位置。
我想知道我該如何解決這個問題? 嘗試了幾件事但沒有成功..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.