我有一段代码可以在函数外部正常运行,但不能在函数(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文件中指定(如果您想知道,请使用德语)。
如果有人能指出我正确的方向,我将不胜感激,因为我从昨天开始就一直坚持这样做,因此我可以解决这个问题。
答案 0 :(得分:1)
使用美元符号“ $”来调用列有时有些挑剔。请尝试按数据[[column]](如@anotherfred说的)或函数子集<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
选择列,并且如果您尝试应用的列包含变量,请不要忘记将变量格式转换为数字subset(myFile, select=Geschlecht)
数字。