【发布时间】:2021-01-01 23:25:35
【问题描述】:
我创建了一个包含一列的 data.table。此列表示我可能会获取数据的汽车名称:
mydata <-mtcars[1:10,]
setDT(mydata, keep.rownames = TRUE)
mydataBase <- data.table (rn = mydata$rn,
mpg = as.numeric(),
cyl = as.numeric(),
disp = as.numeric(),
hp = as.numeric(),
drat = as.numeric(),
wt = as.numeric(),
qsec = as.numeric(),
vs = as.numeric(),
am = as.numeric(),
gear = as.numeric(),
carb = as.numeric())
There were 11 warnings (use warnings() to see them)
mydataBase
rn mpg cyl disp hp drat wt qsec vs am gear carb
1: Mazda RX4 NA NA NA NA NA NA NA NA NA NA NA
2: Mazda RX4 Wag NA NA NA NA NA NA NA NA NA NA NA
3: Datsun 710 NA NA NA NA NA NA NA NA NA NA NA
4: Hornet 4 Drive NA NA NA NA NA NA NA NA NA NA NA
5: Hornet Sportabout NA NA NA NA NA NA NA NA NA NA NA
6: Valiant NA NA NA NA NA NA NA NA NA NA NA
7: Duster 360 NA NA NA NA NA NA NA NA NA NA NA
8: Merc 240D NA NA NA NA NA NA NA NA NA NA NA
9: Merc 230 NA NA NA NA NA NA NA NA NA NA NA
10: Merc 280 NA NA NA NA NA NA NA NA NA NA NA
然后我运行一系列复杂的函数。每次运行此函数的结果都会为我提供有关一辆车的信息。我希望将此信息附加到已经存在的表mydataBase
function(){
# complicated calculations
return(car1)
}
每次运行该函数时,它都会以这种格式保存计算:
car1 <- mydata[2,]
car1
rn mpg cyl disp hp drat wt qsec vs am gear carb
1: Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
所以我正在寻找一种方法,如何填写表格以使rn 匹配并且不生成新列?
期望的结果:
rn mpg cyl disp hp drat wt qsec vs am gear carb
1: Datsun 710 NA NA NA NA NA NA NA NA NA NA NA
2: Duster 360 NA NA NA NA NA NA NA NA NA NA NA
3: Hornet 4 Drive NA NA NA NA NA NA NA NA NA NA NA
4: Hornet Sportabout NA NA NA NA NA NA NA NA NA NA NA
5: Mazda RX4 NA NA NA NA NA NA NA NA NA NA NA
6: Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
7: Merc 230 NA NA NA NA NA NA NA NA NA NA NA
8: Merc 240D NA NA NA NA NA NA NA NA NA NA NA
9: Merc 280 NA NA NA NA NA NA NA NA NA NA NA
10: Valiant NA NA NA NA NA NA NA NA NA NA NA
该函数重复多次,从而在每次运行中计算出不同的汽车。到该过程结束时,几乎所有汽车都将获得可用数据。
我尝试使用合并,但创建了额外的列。有什么想法吗?
【问题讨论】:
-
你能显示你调用这个函数的代码吗?您是否以某种形式的循环调用它?
-
函数被多次调用,类似于循环。每次调用该函数时,都会计算汽车的值。我最初的想法是在函数内部“填充” mydataBase 表,并在环境中使用“
-
但我仍然知道哪些值没有值,因为它们是 NA
-
你能把所有的
car值填在一起吗?还是只能一一填写? -
我要一一填写
标签: r merge data.table