我有下表:

     X.5       X.6       X.7       X.8          X.9 X.10         X.11  X.12   X.13
17   Zip CuCurrent PaCurrent PoCurrent      Contact  Ext          Fax email Status
18  74136         0         1         0 918-491-6998    0 918-491-6659            1
19  30329         1         0         0 404-321-5711                              1
20  74136         1         0         0 918-523-2516    0 918-523-2522            1
21  80203         0         1         0 303-864-1919    0                         1
22  80120         1         0         0 345-098-8890  456                         1


如何使第一行“ zip,cucurrent,pacurrent ...”成为列标题?

谢谢,

以下是dput(dat)


dput(dat)
structure(list(X.5 = structure(c(26L,14L,6L,14L,17L,16L),.Label = c(“”,
“ 1104”,“ 1234我不知道大街”,“ 139.98”,“摩根街300号”,
“ 30329”,“ 312.95”,“ 4101 S. 4th Street,Traff”,“ 500 Highway 89 North”,
“ 644.04”,“ 656.73”,“ 72160”,“ 72336-7000”,“ 74136”,“ 75501”,
“ 80120”,“ 80203”,“ 877.87”,“ Address1”,“ BZip”,“常规Svcs管理员(WPY)”,
“ InvFileName2”,“ LDC_Org_Cost”,“ N / A”,“ NULL”,“ Zip”),类=“ factor”),
X.6 =结构(c(7L,2L,3L,3L,2L,3L),.Label = c(“”,
“ 0”,“ 1”,“ 301第七街”,“ 800-688-6160”,“地址2”,“ CuCurrent”,
“紧急”,“ LDC_Cost_Adj”,“遥测”,“ N / A”,“ NULL”,
“ Suite 1402”),类=“ factor”),X.7 =结构(c(8L,3L,
2L,2L,3L,2L),.Label = c(“”,“ 0”,“ 1”,“ Address3”,“ Cucustomer”,
“ LDC_Misc_Fee”,“ NULL”,“ PaCurrent”,“ Room 7512”),class =“ factor”),
X.8 =结构(c(14L,2L,2L,2L,2L,2L),.Label = c(“”,
“ 0”,“ 100.98”,“ 237.02”,“ 242.33”,“ 335.04”,“ 50.6”,“城市”,
“ Durham”,“ LDC_FinalVolume”,“ Leavenwoth”,“ Pacustomer”,
“ Petersburg”,“ PoCurrent”,“ Prescott”,“华盛顿”),class =“ factor”),
X.9 =结构(c(18L,16L,10L,17L,7L,9L),.Label = c(“”,
“ 0”,“ 1”,“ 139.98”,“ 20024”,“ 27701”,“ 303-864-1919”,“ 312.95”,
“ 345-098-8890”,“ 404-321-5711”,“ 644.04”,“ 656.73”,“ 66048”,
“ 86313”,“ 877.87”,“ 918-491-6998”,“ 918-523-2516”,“联系方式”,
“ LDC_FinalCost”,“ PoCustomer”,“ Zip”),类=“ factor”),
X.10 =结构(c(14L,2L,1L,2L,2L,9L),.Label = c(“”,
“ 0”,“ 2.620194604”,“ 2.710064788”,“ 2.717239052”,“ 2.766403162”,
“ 202-708-4995”,“ 3.09912854”,“ 456”,“ 804-504-7200”,“ 913-682-2000”,
“ 919-956-5541”,“ 928-717-7472”,“ Ext”,“需要发票”,
“ LDC_UnitPrice”,“ NULL”,“ Phone”),class =“ factor”),X.11 =结构(c(7L,
4L,1L,5L,1L,1L),.Label = c(“”,“”,“ 1067”,“ 918-491-6659”,
“ 918-523-2522”,“ Ext”,“传真”,“发票月”,“ LDC_UnitPrice_Original”,
“ NULL”,“ x2951”),class =“ factor”),X.12 = structure(c(13L,
1L,1L,1L,1L,1L),.Label = c(“”,“ 0”,“ 100.98”,“ 202-401-3722”,
“ 237.02”,“ 242.33”,“ 335.04”,“ 50.6”,“ 716-344-3303”,“ 804-504-7227”,
“ 913- 758-4230”,“ 919- 956-7152”,“电子邮件”,“传真”,“ GSA”,
“ Supp_Vol”),类=“ factor”),X.13 =结构(c(10L,2L,
2L,2L,2L,2L),.Label = c(“”,“ 1”,“ 15”,“ 202-497-6164”,
“ 3”,“ 804-504-7200”,“紧急”,“ MajorTypeId”,“ NULL”,
“状态”,“ Supp_Vol_Adj”),类=“ factor”))、. Names = c(“ X.5”,
“ X.6”,“ X.7”,“ X.8”,“ X.9”,“ X.10”,“ X.11”,“ X.12”,“ X.13”),行.names = 17:22,class =“ data.frame”)

最佳答案

如果您不想将数据重新读到R中(看起来好像不是来自注释),则可以执行以下操作。我必须添加一些零以使您的数据完全读取,因此请忽略这些零。

dat
##       V2        V3        V4        V5           V6  V7           V8    V9    V10
## 17   Zip CuCurrent PaCurrent PoCurrent      Contact Ext          Fax email Status
## 18 74136         0         1         0 918-491-6998   0 918-491-6659     0      1
## 19 30329         1         0         0 404-321-5711   0            0     0      1
## 20 74136         1         0         0 918-523-2516   0 918-523-2522     0      1
## 21 80203         0         1         0 303-864-1919   0            0     0      1
## 22 80120         1         0         0 345-098-8890 456            0     0      1


首先将第一行作为列名。接下来删除第一行。通过将列转换为适当的类型来完成此操作。

names(dat) <- as.matrix(dat[1, ])
dat <- dat[-1, ]
dat[] <- lapply(dat, function(x) type.convert(as.character(x)))
dat
##     Zip CuCurrent PaCurrent PoCurrent      Contact Ext          Fax email Status
## 1 74136         0         1         0 918-491-6998   0 918-491-6659     0      1
## 2 30329         1         0         0 404-321-5711   0            0     0      1
## 3 74136         1         0         0 918-523-2516   0 918-523-2522     0      1
## 4 80203         0         1         0 303-864-1919   0            0     0      1
## 5 80120         1         0         0 345-098-8890 456            0     0      1

08-25 06:36