[英]Add a column at the end of a data frame based on the column values in R
我有這樣的數據框
structure(list(ID = c("A142867.12", "F134242.15", "H136244.11",
"Y184937.13"), Name = c("BB", "PP", "II", "WW"), qusa = c(10.0341,
12.7213, 0.157605, 0), nhg = c(24.7632, 50.562, 0.247947, 0.164736
), opk = c(26.931, 5.9474, 0.79539, 0)), class = "data.frame", row.names = c(NA,
-4L))
如果值大於或等於 1.2,我只需要添加一個帶有標簽(通過)的列(結果),就像這樣
ID Name qusa nhg opk Result
A142867.12 BB 10.0341 24.7632 26.931 Pass
F134242.15 PP 12.7213 50.562 5.9474 Pass
H136244.11 II 0.157605 0.247947 0.79539 -
Y184937.13 WW 0 0.164736 0 -
如果 dataframe 中的所有數字列都大於等於 1.2,則可以指定'Pass'
。
cols <- sapply(df, is.numeric)
df$result <- ifelse(rowSums(df[cols] < 1.2) == 0, 'Pass', '-')
#Without ifelse
#df$result <- c('-', 'Pass')[(rowSums(df[cols] < 1.2) == 0) + 1]
df
# ID Name qusa nhg opk result
#1 A142867.12 BB 10.034100 24.763200 26.93100 Pass
#2 F134242.15 PP 12.721300 50.562000 5.94740 Pass
#3 H136244.11 II 0.157605 0.247947 0.79539 -
#4 Y184937.13 WW 0.000000 0.164736 0.00000 -
或者您可以使用 dplyr package 中的 case_when:
library(dplyr)
#your data
abc <- structure(list(ID = c("A142867.12", "F134242.15", "H136244.11", "Y184937.13"),
Name = c("BB", "PP", "II", "WW"),
qusa = c(10.0341, 12.7213, 0.157605, 0),
nhg = c(24.7632, 50.562, 0.247947, 0.164736),
opk = c(26.931, 5.9474, 0.79539, 0)),
class = "data.frame", row.names = c(NA, -4L))
# case_when
abc <- abc %>%
mutate(Results = case_when(qusa >= 1.2 | nhg >= 1.2 | opk >= 1.2 ~ "pass",
TRUE ~ "-"))
# View dataframe
View(abc)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.