从其他data.frame R中分配data.frame列类

时间:2018-08-10 13:16:35

标签: r list class dataframe typeof

我有一个data.frames | DT | |----------------------| | 2018-08-06T15:17:11Z | 列表。 sampleList中的每个data.frame在列及其顺序方面都有所不同。

我还有另一个list data.frame,我想将其用作其余具有相同标题列类别的模型。

换句话说,我希望更新refData1,并且任何与sampleList匹配的列都应更改其类,并在refData1中反映相应列的类类型。不匹配的列应保持原样。请不要refData1也包含一列,列表中的data.frames都没有。谢谢。

refData1

1 个答案:

答案 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