[英]In R, how do I find the x value that will equate to a certain y value on a cdplot? And vice-versa?
[英]Learning R: How do I output the element of certain y vector elements with indices that correspond to certain x vectors?
所以我有兩個向量,劑量和性別。 劑量是一個長度為 100 的數字向量,而性別是一個長度為 100 的具有“女性”和“男性”值的向量。 如果我定義什么是高劑量值(即高劑量為 40、50、60 等)並且我只想要女性患者,我將如何輸出類似於以下示例輸出的內容?
[1]“女性高劑量患者 1 的劑量為 63”
[1]“女性高劑量患者 2 的劑量為 70”
[1]“女性高劑量患者 3 的劑量為 63.07”
[1]“女性高劑量患者 4 的劑量為 58”
[1]“女性高劑量患者 5 的劑量為 75.25”
所以首先讓我為Gender
和Dose
創建一些虛擬數據作為向量:
Gender <- sample(c("Male", "Female"), 100, replace = TRUE)
Dose <- round(runif(100, min = 30, max = 70),2)
我們還將在這里定義high_dose
,它可以是您喜歡的任何閾值:
high_dose <- 50
data.frame
:df <- data.frame(Dose = Dose,
Gender = Gender)
dplyr
更容易進行數據操作:# if you haven't already done so, you'll want to install.packages("dplyr")
library(dplyr)
df %>%
mutate(Level = ifelse(Dose >= high_dose, "High", "Low"),
Patient = row_number(),
Output = paste(Gender, Level, "Dose Patient", Patient, "has dose", Dose))
讓我們分解一下。 首先, mutate
將向我們的df
添加新列。 我們將從Level
開始,使用ifelse
語句判斷Dose
是否大於或等於我們定義的high_dose
。
接下來,我任意指定Patient
作為行號。 如果患者編號很重要,您可能需要更改此設置。
最后, Output
將這些列粘貼在一起,引號中的任何內容都是一行一行的。 如果你只對輸出感興趣,你可以簡單地通過df$Output
調用它
data.table
方法:library(data.table)
df <- data.table(Dose = Dose,
Gender = Gender)
df[, Level := ifelse(Dose >= high_dose, "High", "Low")]
df[, Patient := 1:100]
df[, Output := paste(Gender, Level, "Dose Patient", Patient, "has dose", Dose)]
df$Output
說實話,您只需使用paste
功能即可完成所有這些操作,但我認為dplyr
是一種更好的方式來逐行查看數據發生的情況。
paste(Gender, ifelse(Dose >= high_dose, "High", "Low"),
"Dose Patient", 1:100, "has dose", Dose)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.