我有一個包含兩列(LAB 和 OID)的檔案(df)...我想在 df 檔案上創建一個新變數:column3(OID_new),使用列 1(LAB)和 2(OID)的資訊:
LAB OID OID_new
12 NA 12
13 NA 13
14 NA 14
plate_1 18 18
plate_2 24 24
Plate_3 23 23
為此,我嘗試了:
df %>%
mutate(OID_new= ifelse(OID == NA,df$LAB,
ifelse(OID ^= NA,"df$OID")))-> df1
但不作業
提前致謝
uj5u.com熱心網友回復:
ifelse()
正如您所嘗試的那樣,您可以通過使用來實作這一點。有幾點要提:
ifelse()
需要三個陳述句:- 一個測驗(這里:檢查是否
OID
是NA
:)is.na(OID)
- 如果您的測驗結果是輸出
TRUE
:回傳LAB
- 如果您的測驗結果為
FALSE
:回傳OID
- 一個測驗(這里:檢查是否
- 如果您
%>%
通過管道傳輸資料框,則無需使用$
- 這里的基礎
ifelse()
更好,因為它的 dplyr 版本if_else()
型別穩定并且會引發錯誤。這可能更方便,但隱式強制后可能會出現意想不到的結果,所以要小心。
代碼
df %>% mutate(OID_new = ifelse(is.na(OID), LAB, OID)) -> df1
輸出
> df1
LAB OID OID_new
1 12 NA 12
2 13 NA 13
3 14 NA 14
4 plate_1 18 18
5 plate_2 24 24
6 plate_3 23 23
資料
df <- structure(list(LAB = c("12", "13", "14", "plate_1", "plate_2", "plate_3"),
OID = c(NA, NA, NA, 18, 24, 23)),
class = "data.frame",
row.names = c(NA, -6L))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/449332.html