2014-10-22 3 views
0

Мне интересны исторические данные LendingClub, который является крупнейшей компанией по кредитованию P2P.Как загрузить нестандартизированный CSB-файл и его предварительную обработку

Это нестандартизированный CSB-файл, но его можно легко исправить при открытии в Excel путем удаления 1-й, 39789-39791-й и 42543-42544-й строк, как я могу сделать это в R автоматически? (Если вы хотели бы помочь, но боюсь, это может быть вредоносная ссылка, пожалуйста нагуглить эту компанию первой)

Я попытался следующие:

data <- read.csv(url("https://resources.lendingclub.com/LoanStats3a.csv.zip")) 

но он бросает ошибку:

Error in read.table(file = file, header = header, sep = sep, quote = quote, : 
    duplicate 'row.names' are not allowed 
+0

Вы должны четко указать, какие шаги вы хотите выполнить перед импортом? Какие «несколько строк» ​​вы удаляете? Кроме того, вероятно, не стоит предполагать, что другие готовы загрузить (потенциально вредоносный) zip-файл, чтобы помочь вам. Осторожно описывайте содержимое файла здесь в вопросе. – MrFlick

+0

@MrFlick, Хороший совет, он был отредактирован. – user3684014

+2

Ну, это не злой, но кто когда-либо создавал этот файл csv, должен быть запущен. Это ужасно. –

ответ

2

вы можете использовать skip, чтобы пройти в первой строке «мусора», но есть ~ 4 «мусора» строки в конце вам придется иметь дело с пост-импорта:

dat <- read.csv("LoanStats3a.csv", skip=1, header=TRUE, stringsAsFactors=FALSE) 
str(dat) 

## 'data.frame': 42538 obs. of 96 variables: 
## $ id       : chr "1077501" "1077430" "1077175" "1076863" ... 
## $ member_id      : int 1296599 1314167 1313524 1277178 1311748 1311441 1304742 1288686 1306957 1306721 ... 
## $ loan_amnt      : int 5000 2500 2400 10000 3000 5000 7000 3000 5600 5375 ... 
## $ funded_amnt     : int 5000 2500 2400 10000 3000 5000 7000 3000 5600 5375 ... 
## $ funded_amnt_inv    : num 4975 2500 2400 10000 3000 ... 
## $ term       : chr " 36 months" " 60 months" " 36 months" " 36 months" ... 
## $ int_rate      : chr " 10.65%" " 15.27%" " 15.96%" " 13.49%" ... 
## $ installment     : num 162.9 59.8 84.3 339.3 67.8 ... 
## $ grade       : chr "B" "C" "C" "C" ... 
## $ sub_grade      : chr "B2" "C4" "C5" "C1" ... 
## $ emp_title      : chr "" "Ryder" "" "AIR RESOURCES BOARD" ... 
## $ emp_length     : chr "10+ years" "< 1 year" "10+ years" "10+ years" ... 
## ... (a bunch more variables, some are all NA)