我有一个data.frames | DT |
|----------------------|
| 2018-08-06T15:17:11Z |
列表。 sampleList
中的每个data.frame在列及其顺序方面都有所不同。
我还有另一个list
data.frame
,我想将其用作其余具有相同标题列类别的模型。
换句话说,我希望更新refData1
,并且任何与sampleList
匹配的列都应更改其类,并在refData1
中反映相应列的类类型。不匹配的列应保持原样。请不要refData1
也包含一列,列表中的data.frames都没有。谢谢。
refData1
答案 0 :(得分:2)
我们遍历“ sampleList”,获取带有“ refData1”的intersect
ing列,并使用“ refData1”中的那些设置data.frame的class
sampleListN <- lapply(sampleList, function(x) {
nm1 <- intersect(names(x), names(refData1))
x[nm1] <- Map(function(u, v) {class(u) <- class(v)
u},
x[nm1], refData1[nm1])
x})
正如@ mt1022所述,如果我们遵循逻辑,那么直接转换为factor
的{{1}}列会产生问题,因为我们会错误地输入值,即整数存储值而不是实际值。根据数据,我们甚至不需要与“ refData1”进行比较。我们可以使用integer
type.convert