R - 根据模式重新排列数据[重复]
Posted
技术标签:
【中文标题】R - 根据模式重新排列数据[重复]【英文标题】:R - rearrange data according to pattern [duplicate] 【发布时间】:2015-10-12 15:22:50 【问题描述】:我想根据特定的简单模式重新排序我的数据。
我只想用一个女性行、一个男性行重新排列我的数据,以便一个接一个地保持householdid
。
数据如下:
householdid.x idno isex iage
1 101366 1013661 FEMALE 29
2 101366 1013662 MALE 36
3 102481 1024812 MALE 39
4 102481 1024811 FEMALE 29
5 103755 1037552 MALE 36
6 103755 1037551 FEMALE 31
我不知道该怎么做。
让我们说FEMALE
是第一位的。
我正在寻找的输出很简单:
householdid.x idno isex iage
1 101366 1013661 FEMALE 29
2 101366 1013662 MALE 36
4 102481 1024811 FEMALE 29
3 102481 1024812 MALE 39
6 103755 1037551 FEMALE 31
5 103755 1037552 MALE 36
数据
dta = structure(list(householdid.x = c("101366", "101366", "102481",
"102481", "103755", "103755"), idno = c(1013661, 1013662, 1024812,
1024811, 1037552, 1037551), isex = structure(c(1L, 2L, 2L, 1L,
2L, 1L), .Label = c("FEMALE", "MALE"), class = "factor"), iage = structure(c(22L,
29L, 32L, 22L, 29L, 24L), .Label = c(" 8", " 9", "10", "11",
"12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22",
"23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33",
"34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44",
"45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55",
"56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66",
"67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77",
"78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88",
"89", "90", "91", "92", "93", "94", "95", "98"), class = "factor")), .Names = c("householdid.x",
"idno", "isex", "iage"), row.names = c(NA, 6L), class = "data.frame")
【问题讨论】:
使用 dplyr:dta %>% arrange(householdid.x,isex)
【参考方案1】:
如果每户只有一男一女,那么你可以这样做:
dta <- dta[order(dta$householdid.x, dta$isex), ]
提供所需的输出:
householdid.x idno isex iage
1 101366 1013661 FEMALE 29
2 101366 1013662 MALE 36
4 102481 1024811 FEMALE 29
3 102481 1024812 MALE 39
6 103755 1037551 FEMALE 31
5 103755 1037552 MALE 36
如果我没记错的话,这是第 100,000 个带有r
标签的问题!
【讨论】:
哦,是吗?我在哪里可以看到这个100,000th question with the r tag
?
好吧,实际上并没有这么说,但是如果您单击r
标签,它会告诉您在边栏中标记了r
的问题数量。当你问你的问题时,这是 100,000。但如果在你被删除之前提出问题,那么它就不再是第 100,000 个了。以上是关于R - 根据模式重新排列数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章