我正在嘗試匯入一個 csv 檔案,該檔案只有 1 列,其中包含多個資料。資料由多個空格分隔。
所以我使用了下面的代碼。
inputFile <- read.csv("airpollution.csv", skip = 3, header = TRUE, sep = "")
因為作為城市名稱的第一列有一些帶空格的名稱,所以這段代碼給了我一個錯誤。
你能告訴我一種用數字分隔列并且字串列保持不變的方法嗎?
uj5u.com熱心網友回復:
通過創建一個可以用read.csv. 你的顯然不是逗號分隔的。通常最好使用命令列實用程式來執行此操作,但如果您的檔案不是很大,那么您也可以在 R 中執行此操作。這樣的事情可能會奏效:
## Read file into memory
l <- readLines("airpollution.csv")
## Delete useless lines
l <- l[-c(1:3, 5L)]
## Delete leading and trailing whitespace
l <- gsub("(^\\s )|(\\s $)", "", l)
## Comma-delimit header
l[1L] <- gsub("\\s ", ",", l[1L])
## Comma-delimit remaining lines
l[-1L] <- gsub("\\s (\\d)", ",\\1", l[-1L])
## Write to new file
writeLines(l, "airpollution_clean.csv")
rm(l)
## Read new file into memory as data frame
dd <- read.csv("airpollution_clean.csv")
如果airpollution.csv包含
TABLE V7 AIR POLLUTION DATA PART1
CITY TMR SMIN SMEAN SMAX
DETROIT 817 52 128 260
EL PASO 618 47 87 207
然后airpollution_clean.csv將包含
CITY,TMR,SMIN,SMEAN,SMAX
DETROIT,817,52,128,260
EL PASO,618,47,87,207
看起來dd像
CITY TMR SMIN SMEAN SMAX
1 DETROIT 817 52 128 260
2 EL PASO 618 47 87 207
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/413669.html
標籤:
上一篇:如何洗掉熊貓中的行號
