【发布时间】:2016-09-28 09:55:46
【问题描述】:
所以我的数据是以这种格式从excel导入的
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 中可能有什么方法可以做到这一点。注意 alpha 是一级标题,beta 和 gamma 是二级标题,但在 R 中作为一行导入
这是 dput(文件)
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 中的数据吗? -
最好通过跳过前两行(即
dat <- read.csv("yourfile.csv", skip=2, stringsAsFactors=FALSE))来读取数据集,以避免将所有列转换为factor/character。然后阅读第一两行 -
但是我的问题是如何将 alpha 值链接到 alpha 并将 beta 值链接到 beta。看看我的表格,我的主要问题是如何处理 Excel 表中的多个标题
-
从 excel 表中删除多个标题,并更改标题以使其包含所有信息。并使用包
reshape根据您的规格重组您的数据。