R中的Barplot代码在函数外部起作用,但不在函数内部

时间:2018-12-24 16:58:56

标签: r bar-chart

我有一段代码可以在函数外部正常运行,但不能在函数(R编程语言)内部正常运行。

我正在读取具有以下内容的Excel文件:

myFile = read.csv2("myFile.csv", na.strings = c("-", "k.A")) 

此文件中有许多列,例如性别(Geschlecht),成绩,学期等...

然后我运行以下代码,为我提供性别列的条形图。

barplot(prop.table(table(myFile$Geschlecht)))

只要我知道列标题的名称,我就想创建一个可用于为任何列打印条形图的函数。

这是我做的功能:

mybarplot = function(dataCat, Title){
  barplot(prop.table(table(myFile$dataCat)))
}

然后我像这样调用函数:

mybarplot(Geschlecht,"Geschlecht")

这给了我以下错误和警告:

*Error in plot.window(xlim, ylim, log = log, ...) : 
  need finite 'xlim' values
In addition: Warning messages:
1: In min(w.l) : no non-missing arguments to min; returning Inf
2: In max(w.r) : no non-missing arguments to max; returning -Inf
3: In min(x) : no non-missing arguments to min; returning Inf
4: In max(x) :
 Show Traceback

 Rerun with Debug
 Error in plot.window(xlim, ylim, log = log, ...) : 
  need finite 'xlim' values* 

据我所知,这与文件中的NA值有关吗?这些值由k.A或-在我的Excel文件中指定(如果您想知道,请使用德语)。

如果有人能指出我正确的方向,我将不胜感激,因为我从昨天开始就一直坚持这样做,因此我可以解决这个问题。

1 个答案:

答案 0 :(得分:1)

使用美元符号“ $”来调用列有时有些挑剔。请尝试按数据[[column]](如@anotherfred说的)或函数子集<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>选择列,并且如果您尝试应用的列包含变量,请不要忘记将变量格式转换为数字subset(myFile, select=Geschlecht)数字。