2017-04-01 7 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'ループを使用する必要はありません。おそらく 'サプリー 'でもっとも簡単です。 'myTypes < - data.frame(types = sapply(credit、typeof))'です。ベクトル出力を見るには 'sapply(credit、typeof)'を実行するだけです。 – lmo

答えて

1

あなたが完全に理解していれば、以下を使用することができます: すべての変数にわたってサプリを使用してループオーバーします。 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 
関連する問題