我有下表:
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
怎样才能使第一排'拉链,黄瓜,太平洋......'列标题?
谢谢,
下面的是dput(dat)
dput(DAT) 结构(列表(X.5 =结构(c(26L,14L,6L,14L,17L,16L),。Label = c("", " 1104"," 1234我不认识Ave."," 139.98"," 300 Morgan St." , " 30329"," 312.95"," 4101 S. 4th Street,Traff"," 500 Highway 89 North", " 644.04"," 656.73"," 72160"," 72336-7000"," 74136",& #34; 75501&#34 ;, " 80120"," 80203"," 877.87","地址1"," BZip","一般Svcs管理员(WPY)", " InvFileName2"," LDC_Org_Cost"," N / A"," NULL"," Zip"),class = "因子&#34), X.6 =结构(c(7L,2L,3L,3L,2L,3L),。Label = c("", " 0"," 1"," 301 7th St. SW"," 800-688-6160"," Address2&# 34;," CuCurrent", "紧急"," LDC_Cost_Adj"," Mtelemetry"," N / A"," NULL", " Suite 1402"),class =" factor"),X.7 = structure(c(8L,3L, 2L,2L,3L,2L),.标签= c(""," 0"," 1","地址3", " Cucustomer&#34 ;, " 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",& #34; 50.6"," City", " Durham"," LDC_FinalVolume"," Leavenwoth"," Pacustomer", "彼得堡"," PoCurrent"," Prescott"," Washington"),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&#34 ;, " 86313"," 877.87"," 918-491-6998"," 918-523-2516","联系& #34 ;, " LDC_FinalCost"," PoCustomer"," Zip"),class =" 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&#34 ;, " 919-956-5541"," 928-717-7472"," Ext"," InvoicesNeeded", " LDC_UnitPrice"," NULL"," Phone"),class =" factor"),X.11 = structure(c(7L, 4L,1L,5L,1L,1L),。标签= c("",""," 1067"," 918-491 -6659&#34 ;, " 918-523-2522"," Ext"," Fax"," InvoiceMonths"," LDC_UnitPrice_Original", " NULL"," x2951"),class =" factor"),X.12 =结构(c(13L, 1L,1L,1L,1L,1L),。标签= c(""," 0"," 100.98"," 202- 401-3722&#34 ;, " 237.02"," 242.33"," 335.04"," 50.6"," 716-344-3303&# 34;," 804-504-7227", " 913-758-4230"," 919-956-7152","电子邮件","传真"," GSA&# 34 ;, " Supp_Vol"),class =" factor"),X.13 =结构(c(10L,2L, 2L,2L,2L,2L),. Label = c(""," 1"," 15"," 202-497-6164& #34 ;, " 3"," 804-504-7200","紧急"," MajorTypeId"," NULL", "状态"," Supp_Vol_Adj"),类="因素")),. Name = c(" X.5", " X.6"," X.7"," X.8"," X.9"," X. 10"," X.11"," X.12"," X.13"),row.names = 17:22,class =& #34; data.frame&#34)
答案 0 :(得分:11)
如果您不想将数据重新读入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
答案 1 :(得分:4)
如果从csv文件中获取它,请使用read.csv
中的参数'header'dat=read.csv("gas.csv", header=TRUE)
如果您已经拥有自己的数据并且不想/或无法以干净的方式获取数据,那么您可以这样做
dat=structure(list(X.5 = structure(c(26L, 14L, 6L, 14L, 17L, 16L), .Label = c("", "1104", "1234 I don't know Ave.", "139.98", "300 Morgan St.", "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", "General Svcs Admin (WPY)", "InvFileName2", "LDC_Org_Cost", "N/A", "NULL", "Zip"), class = "factor"), X.6 = structure(c(7L, 2L, 3L, 3L, 2L, 3L), .Label = c("", "0", "1", "301 7th St. SW", "800-688-6160", "Address2", "CuCurrent", "Emergency", "LDC_Cost_Adj", "Mtelemetry", "N/A", "NULL", "Suite 1402"), class = "factor"), X.7 = structure(c(8L, 3L, 2L, 2L, 3L, 2L), .Label = c("", "0", "1", "Address3", "Cucustomer", "LDC_Misc_Fee", "NULL", "PaCurrent", "Room 7512"), class = "factor"), X.8 = structure(c(14L, 2L, 2L, 2L, 2L, 2L), .Label = c("", "0", "100.98", "237.02", "242.33", "335.04", "50.6", "City", "Durham", "LDC_FinalVolume", "Leavenwoth", "Pacustomer", "Petersburg", "PoCurrent", "Prescott", "Washington"), class = "factor"), X.9 = structure(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", "Contact", "LDC_FinalCost", "PoCustomer", "Zip"), class = "factor"), X.10 = structure(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", "InvoicesNeeded", "LDC_UnitPrice", "NULL", "Phone"), class = "factor"), X.11 = structure(c(7L, 4L, 1L, 5L, 1L, 1L), .Label = c("", " ", "1067", "918-491-6659", "918-523-2522", "Ext", "Fax", "InvoiceMonths", "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", "email", "Fax", "GSA", "Supp_Vol"), class = "factor"), X.13 = structure(c(10L, 2L, 2L, 2L, 2L, 2L), .Label = c("", "1", "15", "202-497-6164", "3", "804-504-7200", "Emergency", "MajorTypeId", "NULL", "Status", "Supp_Vol_Adj"), class = "factor")), .Names = c("X.5", "X.6", "X.7", "X.8", "X.9", "X.10", "X.11", "X.12", "X.13"), row.names = 17:22, class = "data.frame")
dat2 = dat[2:6,]
colnames(dat2) = dat[1,]
dat2
答案 2 :(得分:2)
最干净的方法是为此目的设计一个简单的函数。 您需要管理员软件包。
janitor::row_to_names(dat)
如果要将第n行用作列名,则该函数的第二个参数是要使用的行号。默认值为1。
答案 3 :(得分:1)
将数据导入R!
时请使用header = TRUE答案 4 :(得分:1)
这可以用一种简单的方式:
步骤1:将第一行复制到标题:
names(dat) <- dat[1,]
第2步:删除第1行:
dat <- dat[-1,]