我有一个用于模式选择问题的数据集:
mode wait vcost wcost gcost income age size
1 air no 69 59 100 70 35 1
1 train no 34 31 372 71 35 1
1 bus no 35 25 417 70 35 1
1 car yes 0 10 180 30 35 1
2 air no 64 58 68 68 30 2
2 train no 44 31 354 84 30 2
2 bus no 53 25 399 85 30 2
2 car yes 0 11 255 50 30 2
我想以相同的模式一起划行,例如,在此示例中,我希望拥有2个人和4个选项:
mode wait vcost wcost gcost income age size
1 air no 69 59 100 70 35 1
2 air no 64 58 68 68 30 2
1 train no 34 31 372 71 35 1
2 train no 44 31 354 84 30 2
1 bus no 35 25 417 70 35 1
2 bus no 53 25 399 85 30 2
1 car yes 0 10 180 30 35 1
2 car yes 0 11 255 50 30 2
答案 0 :(得分:0)
您只需要根据需要订购data.frame,您需要指定所需的订单,想象一下您的data.frame是以下商品:
df <- data.frame(name = c("A", "B", "A", "C", "B"), value = rnorm(5))
df :
name value
1 A 0.2597374
2 B 1.1343221
3 A -0.2412978
4 C -0.5003403
5 B -0.9401539
您可以手动选择订单:
select_order <- c(1, 3, 2, 5, 4)
df <- df[select_order, ]
df
name value
1 A 0.2597374
3 A -0.2412978
2 B 1.1343221
5 B -0.9401539
4 C -0.5003403
实际上,您只是更改行顺序。
但是,您还想针对一列对data.frame进行排序。您可能希望根据name
的字母顺序对data.frame进行排序,可以使用初始df进行操作:
df <- df[order(df$name), ]
编辑1:
df <- df[order(df$name), ]
很完美dplyr
并在单独的组上计算一些特定的摘要,可以使用:group_by(df, name)
data.frame
列表,可以使用split(df, name)
函数