如何将数据框中每个列的数据类型存储到新数据框的新列中

时间:2017-04-01 12:39:09

标签: r dataframe

让我们使用德国信用卡数据。

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 个答案:

答案 0 :(得分:1)

如果我完全理解你,那么你可以使用以下内容: 使用sapply来遍历所有变量。检查R终端上的“sapply”。 不确定您为什么要这样做,有str命令可以告诉您数据结构,您还可以在glimpse中查找 dplyr 包。 ?str?glimpse获得更多帮助。 感谢&#34; Imo&#34;建议的更新。

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