根据标题单元格添加列;然后删除标题单元格

时间:2015-07-14 21:30:57

标签: r dataframe

我有一些不统一的有趣数据。一组项目列在类别名称下,但它们都在同一列中。我需要添加一个列,该列的行对应于它所属的项目类别(然后删除类别标题)。区分新类别的唯一方法是确定年度下的价值是否为空....我的数据应该更清楚地解释我的问题。

在:

structure(list(X = structure(c(13L, 1L, 19L, 16L, 5L, 17L, 11L, 
8L, 2L, 10L, 4L, 6L, 18L, 15L, 21L, 12L, 14L, 9L, 3L, 20L, 7L
), .Label = c("-Burgers", "-Cameras", "-Shirts", "+Laptops", 
"+Salads", "+TVs", "Caps", "Cell", "Clothes:", "Desktops", "Electronics", 
"Flowers", "Food", "Garden Nomes", "Grills", "Hotdogs", "Nachoes", 
"Outdoors:", "Pizza", "Shorts", "Swimming Gear"), class = "factor"), 
X2000 = c(NA, 104L, 159L, 184L, 189L, 182L, NA, 49L, 28L, 
46L, 34L, 43L, NA, 129L, 190L, 189L, 119L, NA, 45L, 80L, 
80L), X2001 = c(NA, 147L, 192L, 164L, 174L, 196L, NA, 40L, 
34L, 43L, 35L, 22L, NA, 114L, 130L, 120L, 145L, NA, 56L, 
35L, 54L), X2002 = c(NA, 163L, 172L, 138L, 146L, 190L, NA, 
38L, 40L, 21L, 22L, 33L, NA, 186L, 172L, 139L, 119L, NA, 
88L, 78L, 91L), X2003 = c(NA, 125L, 152L, 182L, 148L, 125L, 
NA, 36L, 44L, 34L, 27L, 50L, NA, 119L, 115L, 188L, 166L, 
NA, 91L, 77L, 77L), X2004 = c(NA, 116L, 111L, 120L, 153L, 
199L, NA, 49L, 48L, 43L, 37L, 32L, NA, 159L, 116L, 143L, 
153L, NA, 18L, 53L, 51L)), .Names = c("X", "X2000", "X2001", 
"X2002", "X2003", "X2004"), class = "data.frame", row.names = c(NA, 
-21L))    

后:

structure(list(X = structure(c(1L, 15L, 13L, 5L, 14L, 8L, 2L, 
9L, 4L, 6L, 12L, 17L, 10L, 11L, 3L, 16L, 7L), .Label = c("-Burgers", 
"-Cameras", "-Shirts", "+Laptops", "+Salads", "+TVs", "Caps", 
"Cell", "Desktops", "Flowers", "Garden Nomes", "Grills", "Hotdogs", 
"Nachoes", "Pizza", "Shorts", "Swimming Gear"), class = "factor"), 
X.1 = structure(c(3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 
4L, 4L, 4L, 4L, 1L, 1L, 1L), .Label = c("Clothes:", "Electronics", 
"Food", "Outdoors:"), class = "factor"), X2000 = c(104L, 
159L, 184L, 189L, 182L, 49L, 28L, 46L, 34L, 43L, 129L, 190L, 
189L, 119L, 45L, 80L, 80L), X2001 = c(147L, 192L, 164L, 174L, 
196L, 40L, 34L, 43L, 35L, 22L, 114L, 130L, 120L, 145L, 56L, 
35L, 54L), X2002 = c(163L, 172L, 138L, 146L, 190L, 38L, 40L, 
21L, 22L, 33L, 186L, 172L, 139L, 119L, 88L, 78L, 91L), X2003 = c(125L, 
152L, 182L, 148L, 125L, 36L, 44L, 34L, 27L, 50L, 119L, 115L, 
188L, 166L, 91L, 77L, 77L), X2004 = c(116L, 111L, 120L, 153L, 
199L, 49L, 48L, 43L, 37L, 32L, 159L, 116L, 143L, 153L, 18L, 
53L, 51L)), .Names = c("X", "X.1", "X2000", "X2001", "X2002", 
"X2003", "X2004"), class = "data.frame", row.names = c(NA, -17L
))

这些物品随意都有+或 - 符号......我需要保持不变。此外,一些类别标题有:而其他类别标题没有。

0 个答案:

没有答案