我的数据如下:
> x
Date Obs
1/1/2012 4
1/2/2012 40
1/3/2012 50
这样的功能:
myDat <- function(x, summarize)
{
if (summarize == T)
{
print(summary(x))
}
if (missing(summarize) | summarize == F)
{
print(x)
}
}
当我尝试将其作为:
运行时myDat(x)
我收到此错误:
Error in summarize == T : 'summarize' is missing
我在这做错了什么?
答案 0 :(得分:4)
使用summarize
参数的默认值,您的函数简化为一行:
myDat <- function(x, summarize=FALSE) { if (summarize) summary(x) else x}
试一试:
head(myDat(iris))
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
myDat(iris, s=TRUE)
Sepal.Length Sepal.Width Petal.Length Petal.Width
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
Median :5.800 Median :3.000 Median :4.350 Median :1.300
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
Species
setosa :50
versicolor:50
virginica :50