只会绘制因素吗?

时间:2015-10-10 10:51:49

标签: r string plot factors

我在我的新数据集中工作,我总是用

启动它
public class MyType
{
    struct Entry
    {
        public bool IsSet;
        public int HandlerCount;
        public Action[] HandlerList;
        public void Add(Action handler)
        {
            if (HandlerList == null) HandlerList = new Action[4];
            else if (HandlerList.Length == HandlerCount) Array.Resize(ref HandlerList, 2 * HandlerCount);
            HandlerList[HandlerCount++] = handler;
        }
    }
    const int N = 10;
    readonly Entry[] entries = new Entry[N];
    readonly object syncLock = new object();
    public void Set(int index)
    {
        int handlerCount;
        Action[] handlerList;
        lock (syncLock)
        {
            if (entries[index].IsSet) throw new InvalidOperationException();
            entries[index].IsSet = true;
            handlerCount = entries[index].HandlerCount;
            handlerList = entries[index].HandlerList;
        }
        for (int i = 0; i < handlerCount; i++)
            handlerList[i]();
    }
    public void AddHandler(int index, Action handler)
    {
        if (handler == null) throw new ArgumentException("handler");
        lock (syncLock)
        {
            entries[index].Add(handler);
            if (!entries[index].IsSet) return;
        }
        handler();
    }
}

我现在遇到的问题是,如果将字符串作为因子选项设置为TRUE,则R将仅绘制我设置的数据。

每当我尝试使用Stringsasfactors = FALSE绘图时,它会给我下一条错误消息。

 options(StringsAsFactors = FALSE)

但是当我将Stringsasfactors设置为TRUE时,它会毫无问题地绘制它......

这是剧本。

plot(Data$Jobs, Data$RXH)
Error in plot.window(...) : need finite 'xlim' values
In addition: Warning messages:
1: In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion
2: In min(x) : no non-missing arguments to min; returning Inf
3: In max(x) : no non-missing arguments to max; returning -Inf

这是Data $ Jobs和Data $ RXH

#Setting WD.

getwd()
setwd("C:/Windows/System32/config/systemprofile/Documents/R proj")


options(stringsAsFactors = F)
get <- read.csv("WorkExcelR.csv", header = TRUE, sep = ",")
Data <- na.omit(get)

1 个答案:

答案 0 :(得分:1)

您所说明的问题源于plot.factor函数但没有plot.character函数的事实。您可以通过键入:

来查看可用的plot.-methods
methods(plot)  

?plot的帮助页面中没有特别详细说明,但?plot.factor有一个单独的帮助页面。 R中的函数基于它们的参数被调度:S3仅基于其第一个参数的类和基于其参数签名的S4方法来起作用。在某种意义上,plot.factor函数详细说明了该策略,因为它会根据第二个参数的类调度到不同的绘图例程,假设它与位置匹配或命名为y

你有几个选择:强制绘制方法然后需要使用:::中缀函数进行控制,因为plot.factor不会被导出或自己做强制或调用更具体的绘图类型。 / p>

graphics:::plot.factor(Data$Jobs, Dat
plot(factor(Data$Jobs), Data$RXH)
boxplot(Data$RXH ~Data$Jobs)    # which is the result if x is factor and y is numeric