快速重新标记数据表中的因子

时间:2016-01-04 15:36:27

标签: r data.table

我使用R中的data.table重新标记了很多因素。这通常涉及大量的复制和粘贴。我想知道我是否可以使用R中的下拉列表类型来加快速度。因此,例如,当您键入df$时,它会给出一个下拉选项。这是一个例子:

# Create example df
Batch <- rep(LETTERS[seq(from=1, to =10)], each=1)
Date <- rep(seq(as.Date("2001-01-01"), length.out = 5, by="1 day"), each=2)
df <- data.table(Batch, Date)

# Show factor combinations
with(df, table(Date, Batch))

# Add new column based on factor labels. 
df[Date=="2001-01-01", NewBatch:="hello"]
df[Date=="2001-01-02", NewBatch:="world"]
#etc

如你所知,如果我有十个左右的因素,这可能会非常冗长。我想的是:

df$Date <- factor(df$Date)
labs <- data.frame(unique(df$Date))
ndf <- matrix(, nrow=1, ncol=length(labs$unique.df.Date.))
ndf <- data.frame(ndf)
colnames(ndf) <- c(labs[1],labs[2],labs[3],labs[4],labs[5])

然后我输入ndf$,我得到所有因素的下拉。但是,这非常混乱。有什么想法让它整洁吗?

由于

更新尝试建议:

lookup <- data.table(Date = as.Date(unique(df[["Date"]])) , Newbatch = c("h","e","l","l","o"))


df[lookup, Newbatch:=i.Newbatch, on="Date"]

以上效果很好。

1 个答案:

答案 0 :(得分:2)

我真的不明白你的问题,但我会这样做:

<xslt>