在我進行的一項調查中,我詢問了參與者的教育水平。結果作為二元變數分布在幾列中。我會欣賞將結果組合成單個變數的有效方法。下表顯示了當前和所需的資料格式。
| ID | 中學 | 大學 | 博士 |
|---|---|---|---|
| 1 | 中學 | -1 | -1 |
| 2 | -1 | 大學 | -1 |
| 3 | -1 | -1 | 博士 |
| 4 | 中學 | -1 | -1 |
| ID | 學歷 |
|---|---|
| 1 | 中學 |
| 2 | 大學 |
| 3 | 博士 |
| 4 | 中學 |
uj5u.com熱心網友回復:
要使用 tidyverse 回答您的特定問題,請使用本文末尾的代碼創建一個測驗資料集:
library(tidyverse)
df %>%
mutate(
across(-ID, function(x) ifelse(x == "-1", NA, x)),
EducationalBackground=coalesce(high_school, college, PhD)
)
ID high_school college PhD EducationalBackground
1 1 high_school <NA> <NA> high_school
2 2 <NA> college <NA> college
3 3 <NA> <NA> PhD PhD
4 4 high_school <NA> <NA> high_school
該代碼通過將"-1"列中的文本值(我認為是缺失值標志)轉換為真正的缺失值來作業。然后我使用coalesce在包含調查資料的三列中查找第一個非缺失值并將其放入新的匯總列中。這假設在資料幀的每一行中將有一個且只有一個非缺失值。
也就是說,我的偏好是通過在文章的早期調整您的作業流程以避免問題來避免問題。但是你沒有提供任何細節,所以我不能就如何做到這一點提出任何建議。
測驗資料
df <- read.table(textConnection("ID high_school college PhD
1 high_school -1 -1
2 -1 college -1
3 -1 -1 PhD
4 high_school -1 -1"), header=TRUE)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/521662.html
標籤:rdplyr数据争吵
上一篇:有沒有更簡單的方法來做到這一點?試圖找到特定的關聯并讓R指出它在資料框中的位置
下一篇:R中的匹配樣本
