所以我有一个大的数据集,看起来像这样:的R - 基于匹配(模板)重新排序列
V1 V2 V3 V4
1 Sleep Domestic Eat Child Care
2 Sleep Domestic Eat Paid
3 Sleep Domestic Eat Child Care
4 Sleep Eat Paid <NA>
我想这样做是为了reorder
基于“模板”列
["Sleep", "Eat", "Domestic", "Paid", "Child care"]
为了得到(输出中)
V1 V2 V3 V4 V5
Sleep Eat Domestic NA Child Care
Sleep Eat Domestic Paid NA
Sleep Eat Domestic NA Child Care
Sleep Eat NA Paid NA
所以在1列Sleep
,列2 Eat
,...
我不知道从哪里开始。 有什么想法?
数据
x = structure(list(V1 = c("Sleep", "Sleep", "Sleep", "Sleep"), V2 = c("Domestic",
"Domestic", "Domestic", "Eat"), V3 = c("Eat", "Eat", "Eat", "Paid"
), V4 = c("Child Care", "Paid", "Child Care", NA)), .Names = c("V1",
"V2", "V3", "V4"), row.names = c(NA, 4L), class = "data.frame")
template = c('Sleep', 'Eat', 'Domestic', 'Paid', 'Child care')
一个选项,有一个案例不匹配 - “儿童护理”到“托儿” – thelatemail
我无法理解你的问题,所以让我提出了我认为你在问,然后你告诉我我错了,好吗?基本上每一列*应该*代表有价值或没有价值,例如:'[4,'V5']'应该是“儿童保育”(儿童保育的意思是“是”)或“NA”意思“不”用于托儿。这些yes/no值的顺序应根据模板在每一行中排序。真的吗? –
@TravisHeeter嗨实际上它是另一种看待它的方式。我没有这样想过,但是是的。 – giacomo