我已經為這個資料集苦苦掙扎了幾個小時。我已經搜索了幾個小時并嘗試了很多東西,但我失敗了(我是 R 的新手)。所以我真的希望你們能幫助我。
我有這個資料集:
df <- data.frame(ID = c(1,2,3,4,5), a.1 = c("A", "C", "C", "B","D"), a.2 = c("C", "C", "D", "A","B"), b.1 = c("D", "C", "A", "B","D"), b.2 = c("D", "B", "C", "A","A"))
ID a.1 a.2 b.1 b.2
1 1 A C D D
2 2 C C C B
3 3 C D A C
4 4 B A B A
5 5 D B D A
我想將一個名為“result”的新變數變異為:
- 如果其中一列帶有前綴“a”,則為“1”。包含“A”或“B”
- 如果其中一列帶有前綴“a”,則為“0”。不包含“A”或“B”
所以我會得到以下結果:
ID a.1 a.2 b.1 b.2 result
1 1 A C D D 1
2 2 C C C B 0
3 3 C D A C 0
4 4 B A B A 1
5 5 D B D A 1
在我的真實資料集中,我有 100 個帶有前綴“a.”的變數,因此我無法單獨選擇列。
希望大家幫幫我!
非常感謝!
uj5u.com熱心網友回復:
library(dplyr)
df %>%
rowwise() %>%
mutate(res = any(c_across(starts_with("a.")) %in% c("A", "B")) * 1L)
#> # A tibble: 5 x 6
#> # Rowwise:
#> ID a.1 a.2 b.1 b.2 res
#> <dbl> <chr> <chr> <chr> <chr> <int>
#> 1 1 A C D D 1
#> 2 2 C C C B 0
#> 3 3 C D A C 0
#> 4 4 B A B A 1
#> 5 5 D B D A 1
uj5u.com熱心網友回復:
非常感謝!!
當我掙扎了這么久時,你需要的代碼太少了,真是太瘋狂了。對我來說還有足夠的學習。:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/362778.html
上一篇:使用條件陳述句的算術運算
下一篇:回圈、功能和組織方面的問題'
