在data.table中使用gsub()

时间:2014-06-21 00:13:58

标签: r data.table

我有一个大数据表(大约20,000行)。其中一列包含1到6的整数。

我还有一个汽车模型的角色矢量(6个型号)。

我试图用相应的汽车模型替换整数。(在本例中仅为2)

 gsub("1",paste0(labels[1]),Models)
 gsub("2",paste0(labels[2]),Models) 
 ...  

"模式"是列的名称。

labels <- c("Altima","Maxima")

与它斗争12个多小时后,gsub()没有工作(

样本数据:
                  MYDATA&LT; -data.table(复制(1,样品(1:6,10000,代表= TRUE)))                   标签及LT; -C(&#34; Altima的&#34;&#34;最大值&#34;&#34; SENTRA&#34;&#34;是&#34;&#34; GS&#34 ;, &#34; LS&#34)

2 个答案:

答案 0 :(得分:2)

我认为你不需要gsub。你所描述的是一个因子变量。

如果数据是

mydata <- data.table(replicate(1,sample(1:6,1000,rep=TRUE)))
models <- c("altima","maxima","sentra","is","gs","ls")

你可以做到

mydata[[1]] <- factor(mydata[[1]], levels=seq_along(models), labels=models)

如果你真的想要一个角色而不是一个因素,那么

mydata[[1]] <- models[ mydata[[1]] ]

也可以做到这一点。这两个都要求数字是连续的并从1开始。

答案 1 :(得分:0)

你可以尝试以下列方式使用factor() - 为我的测试数据工作。假设mydata中第一列的名称是V1(默认值)

mydata$V1 <- factor(mydata$V1, labels=models)