学习R:如何输出某些y向量元素的元素,其索引对应于某些x向量?
所以我有两个载体,剂量和性别。剂量是一个长度为100的数字向量,性别是一个长度为100的“女性”和“男性”值向量。如果我定义了什么是高剂量值(即高剂量为40、50、60等),并且我只想要女性患者,我将如何输出类似以下样本输出的内容 样本输出 [1] “女性高剂量患者1的剂量为63” [1] “女性高剂量患者2的剂量为70” [1] “女性高剂量患者3的剂量为63.07” [1] “女性高剂量患者4的剂量为58”学习R:如何输出某些y向量元素的元素,其索引对应于某些x向量?,r,vector,R,Vector,所以我有两个载体,剂量和性别。剂量是一个长度为100的数字向量,性别是一个长度为100的“女性”和“男性”值向量。如果我定义了什么是高剂量值(即高剂量为40、50、60等),并且我只想要女性患者,我将如何输出类似以下样本输出的内容 样本输出 [1] “女性高剂量患者1的剂量为63” [1] “女性高剂量患者2的剂量为70” [1] “女性高剂量患者3的剂量为63.07” [1] “女性高剂量患者4的剂量为58” [1] “女性高剂量患者5的剂量为75.25”因此,首先让我为性别和剂量创建一些虚拟
[1] “女性高剂量患者5的剂量为75.25”因此,首先让我为
性别和剂量创建一些虚拟数据作为向量:
Gender <- sample(c("Male", "Female"), 100, replace = TRUE)
Dose <- round(runif(100, min = 30, max = 70),2)
创建一个数据框
:
让我们来分析一下。首先,mutate
将向我们的df
添加新列。我们将从Level
开始,使用ifelse
说明Dose
是否大于或等于我们定义的高剂量
接下来,我将Patient
任意指定为行号。如果患者编号很重要,您可能需要更改此选项
最后,Output
将这些列粘贴在一起,引号中的任何内容逐行都是相同的。如果您只对输出感兴趣,只需通过df$output
数据表
方法:
我可以使用data.table实现与使用dplyr相同的输出吗?我正在尝试在不使用其他包的情况下创建此代码。
high_dose <- 50
df <- data.frame(Dose = Dose,
Gender = Gender)
# 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))
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(Gender, ifelse(Dose >= high_dose, "High", "Low"),
"Dose Patient", 1:100, "has dose", Dose)