Так мои данные импортируются из Excel в этом форматеПреобразование нескольких заголовков столбцов значений в R
alpha
beta gamma
var1 var2 var3 var1 var2 var3
1 21 50 5 22 48 6
2 27 50 5 24 48 6
3 26 50 5 28 48 6
4 25 50 5 28 48 6
и я хочу, чтобы преобразовать его в этот формат
var1 var2 var3 var4 var5
1 21 50 5 alpha beta
2 27 50 5 alpha beta
3 26 50 5 alpha beta
4 25 50 5 alpha beta
5 22 48 6 alpha gamma
6 24 48 6 alpha gamma
7 28 48 6 alpha gamma
8 28 48 6 alpha gamma
Что может быть возможным способом сделать это в R. Обратите внимание, что альфа - это заголовок первого уровня, бета и гамма - это заголовки второго уровня, но импортированные в виде строки в R
Вот источник (0)
structure(list(X.group.age = structure(c(1L, 1L, 2L,
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L), .Label = c("", "19-15",
"24-20", "29-25", "34-30", "39-35", "44-40", "49-45", "54-50",
"59-55", "64-60"), class = "factor"), X1999. = structure(c(12L,
11L, 4L, 3L, 8L, 7L, 6L, 5L, 2L, 1L, 10L, 9L), .Label = c("132486",
"187238", "226157", "25755", "277822", "351166", "408307", "435447",
"53084", "84800", "MALE", "BRITISH"), class = "factor"),
X. = structure(c(1L, 12L, 6L, 10L, 2L, 11L, 9L, 5L, 3L, 7L,
8L, 4L), .Label = c("", "102978", "11871", "1828", "24871",
"3720", "4136", "4526", "49072", "65049", "78375", "إناث"
), class = "factor"), X..1 = structure(c(1L, 3L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("", "NA", "TOTAL"
), class = "factor"), X..2 = structure(c(12L, 11L, 9L, 2L,
7L, 8L, 6L, 4L, 1L, 10L, 5L, 3L), .Label = c("171302", "204856",
"20740", "318726", "40116", "493643", "576850", "612027",
"8415", "93130", "MALE", "USA"), class = "factor"),
X..3 = structure(c(1L, 12L, 8L, 6L, 10L, 2L, 11L, 7L, 3L,
9L, 4L, 5L), .Label = c("", "158711", "18484", "2038", "2410",
"37816", "43444", "5089", "7134", "78785", "90155", "FEMALE"
), class = "factor"), X..4 = structure(c(1L, 12L, 3L, 6L,
10L, 11L, 9L, 7L, 4L, 2L, 8L, 5L), .Label = c("", "100264",
"13504", "189786", "23150", "242672", "362170", "42154",
"583798", "655635", "770738", "TOTAL"), class = "factor"),
X2000. = structure(c(12L, 11L, 6L, 3L, 8L, 7L, 5L, 4L, 2L,
1L, 10L, 9L), .Label = c("132830", "201634", "225389", "289188",
"364795", "38815", "419225", "443670", "59708", "97645",
"MALE", "BRITISH"), class = "factor"), X..5 = structure(c(1L,
12L, 6L, 9L, 2L, 11L, 8L, 5L, 3L, 10L, 7L, 4L), .Label = c("",
"103289", "14099", "2033", "27027", "3327", "4341", "49512",
"52910", "6867", "85007", "FEMALE"), class = "factor"),
X..6 = structure(c(1L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L), .Label = c("", "NA", "TOTAL"), class = "factor"),
X..7 = structure(c(12L, 11L, 3L, 1L, 4L, 6L, 9L, 7L, 5L,
2L, 10L, 8L), .Label = c("115574", "177250", "19787", "267819",
"326709", "465506", "494696", "51245", "544286", "92696",
"male", "USA"), class = "factor"), X..8 = structure(c(1L,
12L, 8L, 5L, 7L, 2L, 11L, 10L, 6L, 9L, 4L, 3L), .Label = c("",
"106279", "1476", "3050", "32104", "36447", "52824", "6407",
"7497", "75029", "96487", "female"), class = "factor"),
X..9 = structure(c(1L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L), .Label = c("", "NA", "Total"), class = "factor")), .Names = c("X.group.age",
"X1999.", "X.", "X..1", "X..2", "X..3", "X..4", "X2000.", "X..5",
"X..6", "X..7", "X..8", "X..9"), row.names = c(NA, -12L), class = "data.frame")
Вы можете разместить 'dput (yourexample)' так, чтобы знать структуру данных? Или вы прочитали данные в R? – akrun
Да, размещено выше –
Возможно, лучше прочитать набор данных, пропустив первые две строки, т. Е. 'Dat <- read.csv (" yourfile.csv ", skip = 2, stringsAsFactors = FALSE)', чтобы избежать преобразования всех столбцов в 'фактор/character'. Затем прочитайте 1-ю две строки – akrun