kqu*_*ach 0 iteration variables loops r apply
我吮吸循环和[l,s,v]应用,我需要总结一个大的纵向数据集.我已经彻底搜索了我的问题好几天,我发布这个因为我无法解决我的问题.
数据看起来像这样:
id var1_dose var1_unit var2_dose var2_unit var3_dose var3_unit
1 2 mL 5 mL 1 mL
2 4 mg 2 mg 4 mg
3 6 mcg 4 mcg 2 mcg
1 1 mL 1 mL 3 mL
2 3 mL 3 mL 5 mL
Run Code Online (Sandbox Code Playgroud)
我想通过使用apply或loop并输出作为列表的var(1-3)剂量追加.
我想创建一个新的变量来连接剂量和单位的数量,例如第1行,var1 = 2mL,var2 = 5 mL,var3 = 1mL
非常感谢您的帮助.
这不是您要求的答案,但我认为这对您和其他人有帮助.请考虑整理数据框.例如:
library(tidyr)
df1 <- data.frame(id = c(1,2,3,1,2),
var1_dose = c(2,4,6,1,3),
var1_unit = c("mL", "mg", "mcg", "mL", "mL"),
var2_dose = c(5,2,4,1,3),
var2_unit = c("mL", "mg", "mcg", "mL", "mL"),
var3_dose = c(1,4,2,3,5),
var3_unit = c("mL", "mg", "mcg", "mL", "mL"),
stringsAsFactors = FALSE)
df1.gather <- gather(df1, variable, value, -id)
df1.tidy <- separate(df1.gather, variable,
into = c("variable", "measurement"), sep = "_")
head(df1.tidy)
# id variable measurement value
# 1 var1 dose 2
# 2 var1 dose 4
# 3 var1 dose 6
# 1 var1 dose 1
# 2 var1 dose 3
# 1 var1 unit mL
# 2 var1 unit mg
# 3 var1 unit mcg
# 1 var1 unit mL
# 2 var1 unit mL
# hacky workaround to get a units column
df1.tidy <- subset(df1.tidy, measurement != "unit")
df1.tidy$unit <- rep(c("mL", "mg", "mcg", "mL", "mL"), 3)
Run Code Online (Sandbox Code Playgroud)
这种结构应该使得汇总,建模和绘图(使用ggplot2)变得更加容易.
| 归档时间: |
|
| 查看次数: |
378 次 |
| 最近记录: |