【发布时间】:2018-05-22 00:57:21
【问题描述】:
我有名称为“VA01_01”、“VA01_02”等以及“VA02_01”、“VA02_02”的变量。前缀为 VA01 的变量来自女性参与者,前缀为 VA02 的变量来自男性参与者。例如,男性参与者在变量 VA01 中有 NA。我已经有了性别价值观的因素。
我想做的是创建一组新的变量来接管两种变量类型的值。也就是说,如果是男性参与者,他会得到那组变量中 VA02 变量的值。因此,新的变量集将不再有任何 NA,因为它不会基于性别。
有人对这个问题有简单的解决方案吗?我不知道 reshape 是否是答案,因为我真的不想将我的数据框转换为长格式。
这里是一开始的样子:
structure(list(sex = structure(c(1L, 2L, 1L, 2L), .Label = c("female",
"male"), class = "factor"), VA01_01 = c(1, NA, 2, NA), VA01_02 = c(4,
NA, 4, NA), VA02_01 = c(NA, 3, NA, 4), VA02_02 = c(NA, 5, NA,
3)), .Names = c("sex", "VA01_01", "VA01_02", "VA02_01", "VA02_02"
), row.names = c(NA, -4L), class = "data.frame")
最后在这里(我想保留原始变量):
structure(list(sex = structure(c(1L, 2L, 1L, 2L), .Label = c("female",
"male"), class = "factor"), VA_tot_01 = c(1, 3, 2, 4), VA_tot_02 = c(4,
5, 4, 3), VA01_01 = c(1, NA, 2, NA), VA01_02 = c(4, NA, 4, NA
), VA02_01 = c(NA, 3, NA, 4), VA02_02 = c(NA, 5, NA, 3)), .Names = c("sex",
"VA_tot_01", "VA_tot_02", "VA01_01", "VA01_02", "VA02_01", "VA02_02"
), row.names = c(NA, -4L), class = "data.frame")
【问题讨论】:
-
寻求帮助时,您应该包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出。答案可能涉及到重新塑造高、总结,然后重新塑造回宽。
标签: r