R 绘图问题-错误地将因子变量处理为数字
我不完全确定我在R中的绘图函数中遇到的问题的名称 在我最初的数据集中,我有一个名为“年龄”的变量,其级别为:15、16、17、18、19、20、21、22、23、24、25、26、27、28、29、2X、30、40、50、60。当我使用以下方法绘制年龄时:R 绘图问题-错误地将因子变量处理为数字,r,plot,graph,graphing,R,Plot,Graph,Graphing,我不完全确定我在R中的绘图函数中遇到的问题的名称 在我最初的数据集中,我有一个名为“年龄”的变量,其级别为:15、16、17、18、19、20、21、22、23、24、25、26、27、28、29、2X、30、40、50、60。当我使用以下方法绘制年龄时: plot(age, xlab="Age", ylab="Number of observations") 然后我会得到这个图(x轴上有年龄的条形图,y轴上有观察次数): 然后我从数据中删除了2X(对于20多岁的人),并使用上面相同的代码得
plot(age, xlab="Age", ylab="Number of observations")
然后我会得到这个图(x轴上有年龄的条形图,y轴上有观察次数):
然后我从数据中删除了2X(对于20多岁的人),并使用上面相同的代码得到了新的绘图。当我重新运行代码时,绘图现在看起来是这样的(y轴上有年龄的绘图):
如果有人对为什么现在的情节在y轴上有年龄有任何想法,请告诉我!提前感谢您的帮助 诊断性 您将遇到S3方法分派问题<代码>绘图是一个通用功能:
methods(plot)
# [1] plot.acf* plot.data.frame* plot.decomposed.ts*
# [4] plot.default plot.dendrogram* plot.density*
# [7] plot.ecdf plot.factor* plot.formula*
#[10] plot.function plot.hclust* plot.histogram*
#[13] plot.HoltWinters* plot.isoreg* plot.lm*
#[16] plot.medpolish* plot.mlm* plot.ppr*
#[19] plot.prcomp* plot.princomp* plot.profile.nls*
#[22] plot.raster* plot.spec* plot.stepfun
#[25] plot.stl* plot.table* plot.ts
#[28] plot.tskernel* plot.TukeyHSD*
上面的评论要求您在删除2X
之前和之后提供str(age)
,因为这些信息有助于告诉您在调用plot
时调度了哪个方法
当您有2X
数据时,年龄无疑是一个因素。因此,当您调用plot
时,将调用plot.factor
,并生成条形图
当您删除2X
时,似乎age
在某种程度上变成了一个数字变量。因此,当您调用plot
时,将调用plot.default
,并生成散点图,在这种情况下plot(age)
基本上是执行plot.default(1:length(age),age)
解决方案
一种肯定有效的方法是
plot(factor(age), xlab="Age", ylab="Number of observations")
然而,我仍然很好奇您是如何删除2X
子集的,以便age
变成数字的。通常,如果age
是R中的一个因子变量,则删除子集不会改变变量类别
大概age
存储在.txt
或.csv
文件中,您可以通过scan()
、read.table()
或read.csv()
读取它。当您删除2X
时,您将这些文件中的数据删除,并再次将数据读入R。通过这种方式,R将在读入数据时将年龄识别为不同的类别。您是如何“删除2X”的?年龄是多少?在你移除2X之前和之后它是否改变了等级?str(年龄)
前后是什么样子?如果你能重复地分享少量的数据——足以说明问题——这将大大有助于解决这个问题。有关重复共享数据的提示。我删除了原始Excel文件中的“2X”点,然后保存了一个新的.txt文件。在删除“2x”点之前,str(年龄)
输出为:因子w/22水平“15”、“16”、“17”…:1 2…
。移除“2x”点后,str(age)
输出为:int[1:45816]15…
。我也将尝试根据这些指导原则准备一些数据!我仍然不清楚如何获得绘图。默认值以生成特定的散点图?我将数据存储在一个.txt
文件中,并通过read.table()
@ZheyuanLi()读取数据:我点击了灰色的勾号(向上箭头),它投了一票,但没有变成绿色。我错过什么了吗?