例如,如果列类是数字,则应用数学函数,例如mean()。如果下一列是日期,则是最小日期,最大日期等。
S.NO NAME MARKS DOB
1. X 90 1-2-1991
2. Y 80 1-3-1991
3. Z 70 1-4-1991
将此视为样本数据集。如何为数据集中的列应用不同的函数?应根据列的类别选择函数。
答案 0 :(得分:2)
只需使用检查变量类的函数并返回不同的值,然后在data.frame上使用lapply。这是一个任意函数的例子。
lapply(d,function(x) {
if(class(x) %in% c("numeric","integer")) mean(x)
else if(class(x) == "Date") min(x)
else if(class(x) == "character") nchar(x)
})
数据
txt <- readLines(n=4)
S.NO NAME MARKS DOB
1. X 90 1-2-1991
2. Y 80 1-3-1991
3. Z 70 1-4-1991
d <- read.table(text=txt,head=TRUE,stringsAsFactor=FALSE)
d$DOB <- as.Date(d$DOB)