只读取选定列

只读取选定列

有谁能告诉我如何只读取以下数据的前6个月(7列),例如使用read.table()?


Year   Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec   

2009   -41  -27  -25  -31  -31  -39  -25  -15  -30  -27  -21  -25

2010   -41  -27  -25  -31  -31  -39  -25  -15  -30  -27  -21  -25 

2011   -21  -27   -2   -6  -10  -32  -13  -12  -27  -30  -38  -29


冉冉说
浏览 509回答 3
3回答

至尊宝的传说

假设数据在文件中data.txt,您可以使用colClasses争论read.table()跳过列。在这里,前7列中的数据是"integer"我们将其余6列设置为"NULL"指示应该跳过它们。>&nbsp;read.table("data.txt",&nbsp;colClasses&nbsp;=&nbsp;c(rep("integer",&nbsp;7),&nbsp;rep("NULL",&nbsp;6)),&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;header&nbsp;=&nbsp;TRUE) &nbsp;&nbsp;Year&nbsp;Jan&nbsp;Feb&nbsp;Mar&nbsp;Apr&nbsp;May&nbsp;Jun1&nbsp;2009&nbsp;-41&nbsp;-27&nbsp;-25&nbsp;-31&nbsp;-31&nbsp;-392&nbsp;2010&nbsp;-41&nbsp;-27&nbsp;-25&nbsp;-31&nbsp;-31&nbsp;-393&nbsp;2011&nbsp;-21&nbsp;-27&nbsp;&nbsp;-2&nbsp;&nbsp;-6&nbsp;-10&nbsp;-32变化"integer"中详细说明的可接受类型之一。?read.table取决于数据的真实类型。data.txt看起来是这样的:$&nbsp;cat&nbsp;data.txt&nbsp; "Year"&nbsp;"Jan"&nbsp;"Feb"&nbsp;"Mar"&nbsp;"Apr"&nbsp;"May"&nbsp;"Jun"&nbsp;"Jul"&nbsp;"Aug"&nbsp;"Sep"&nbsp;"Oct"&nbsp;"Nov"&nbsp;"Dec"2009&nbsp;-41&nbsp;-27&nbsp;-25&nbsp;-31&nbsp;-31&nbsp;-39&nbsp;-25&nbsp;-15&nbsp;-30&nbsp;-27&nbsp;-21&nbsp;-252010&nbsp;-41&nbsp;-27&nbsp;-25&nbsp;-31&nbsp;-31&nbsp;-39&nbsp;-25&nbsp;-15&nbsp;-30&nbsp;-27&nbsp;-21&nbsp;-252011&nbsp;-21&nbsp;-27&nbsp;-2&nbsp;-6&nbsp;-10&nbsp;-32&nbsp;-13&nbsp;-12&nbsp;-27&nbsp;-30&nbsp;-38&nbsp;-29并且是通过以下方法创建的write.table(dat,&nbsp;file&nbsp;=&nbsp;"data.txt",&nbsp;row.names&nbsp;=&nbsp;FALSE)哪里dat是dat&nbsp;<-&nbsp;structure(list(Year&nbsp;=&nbsp;2009:2011,&nbsp;Jan&nbsp;=&nbsp;c(-41L,&nbsp;-41L,&nbsp;-21L),&nbsp;Feb&nbsp;=&nbsp;c(-27L,&nbsp;-27L,&nbsp;-27L),&nbsp;Mar&nbsp;=&nbsp;c(-25L,&nbsp;-25L,&nbsp;-2L),&nbsp;Apr&nbsp;=&nbsp;c(-31L,&nbsp;-31L,&nbsp;-6L),&nbsp;May&nbsp;=&nbsp;c(-31L,&nbsp;-31L,&nbsp;-10L),&nbsp;Jun&nbsp;=&nbsp;c(-39L,&nbsp;-39L,&nbsp;-32L),&nbsp;Jul&nbsp;=&nbsp;c(-25L,&nbsp;-25L,&nbsp;-13L),&nbsp;Aug&nbsp;=&nbsp;c(-15L,&nbsp;-15L,&nbsp;-12L),&nbsp;Sep&nbsp;=&nbsp;c(-30L,&nbsp;-30L,&nbsp;-27L),&nbsp;Oct&nbsp;=&nbsp;c(-27L,&nbsp;-27L,&nbsp;-30L),&nbsp;Nov&nbsp;=&nbsp;c(-21L,&nbsp;-21L,&nbsp;-38L),&nbsp;Dec&nbsp;=&nbsp;c(-25L,&nbsp;-25L,&nbsp;-29L)),&nbsp;.Names&nbsp;=&nbsp;c("Year",&nbsp;"Jan",&nbsp;"Feb",&nbsp;"Mar",&nbsp;"Apr",&nbsp;"May",&nbsp;"Jun",&nbsp;"Jul",&nbsp;"Aug",&nbsp;"Sep",&nbsp;"Oct",&nbsp;"Nov",&nbsp;"Dec"),&nbsp;class&nbsp;=&nbsp;"data.frame",row.names&nbsp;=&nbsp;c(NA,&nbsp;-3L))如果事先不知道列数,则实用程序函数count.fields将读取文件并计数每一行中的字段数。##&nbsp;returns&nbsp;a&nbsp;vector&nbsp;equal&nbsp;to&nbsp;the&nbsp;number&nbsp;of&nbsp;lines&nbsp;in&nbsp;the&nbsp;filecount.fields("data.txt",&nbsp;sep&nbsp;=&nbsp;"\t")##&nbsp;returns&nbsp;the&nbsp;maximum&nbsp;to&nbsp;set&nbsp;colClassesmax(count.fields("data.txt",&nbsp;sep&nbsp;=&nbsp;"\t"))
打开App,查看更多内容
随时随地看视频慕课网APP