簡體   English   中英

重新編碼數字變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM