2017-04-01 67 views
1

讓我們使用德國信用卡數據。如何將數據幀中每列的數據類型存儲到新數據幀的新列

url <- 'https://onlinecourses.science.psu.edu/stat857/sites/onlinecourses.science.psu.edu.stat857/files/german_credit.csv' 
credit <- read.csv(url, header = TRUE, sep = ',') 

我只是做了一兩件事:列的名稱存儲在一個新的數據幀:

CreditNames <- as.data.frame(names(credit)) 
View(CreditNames) 

我如何可以存儲使用typeof(credit)放入一個新列的數據類型?

東西我想:

for (i in 1:length(GermanCreditCardData)) { 
CreditNames[i] <- as.data.frame(names(credit)[i]) 
} 

但這是拋出一個錯誤。

+1

沒有必要在這種情況下使用'for'循環。用'sapply'可能最簡單。 'myTypes < - data.frame(types = sapply(credit,typeof))''。只需運行'sapply(credit,typeof)'來查看向量輸出。 – lmo

回答

1

如果我完全理解了你,那麼你可以使用下面的代碼: 使用sapply來遍歷所有的變量。在R終端上檢查?sapply。 不知道爲什麼你想這樣做,有str命令,它可以告訴你數據的結構,你也可以尋找glimpsedplyr包。 ?str?glimpse獲得更多幫助。 感謝「Imo」的建議更新。

url <- 'https://onlinecourses.science.psu.edu/stat857/sites/onlinecourses.science.psu.edu.stat857/files/german_credit.csv' 
credit <- read.csv(url, header = TRUE, sep = ',',stringsAsFactors = F) 
dat <- data.frame(type = sapply(credit,typeof)) 
dat$varname <- rownames(dat) 
rownames(dat) <- NULL 
dat <- dat[,c(2,1)] 
dat 

> dat 
          varname type 
1      Creditability integer 
2     Account.Balance integer 
3   Duration.of.Credit..month. integer 
4 Payment.Status.of.Previous.Credit integer 
5       Purpose integer 
6      Credit.Amount integer 
7    Value.Savings.Stocks integer 
8  Length.of.current.employment integer 
9    Instalment.per.cent integer 
10    Sex...Marital.Status integer 
11      Guarantors integer 
12  Duration.in.Current.address integer 
13  Most.valuable.available.asset integer 
14      Age..years. integer 
15    Concurrent.Credits integer 
16     Type.of.apartment integer 
17  No.of.Credits.at.this.Bank integer 
18      Occupation integer 
19     No.of.dependents integer 
20       Telephone integer 
21     Foreign.Worker integer 
相關問題