【发布时间】:2020-05-31 16:56:16
【问题描述】:
我正在尝试为 data.table 设置键并将原始列名保留在第二行。到目前为止,我所做的所有尝试都将列名更改为键并删除了原始变量。我有十个 data.tables 要合并,所有变量都有不同的名称,如示例中所示。因此,我制作了键,但想在进行协调之前也保留原件。
library(tidyverse)
library(lubridate)
library(forcats)
library(stringr)
library(data.table)
library(rio)
library(dplyr)
1。键
keys1 <- c("SDC_GENDER","SDC_CHILD_NB","LAB_CRP","PM_HIP")
keys2 <- c("SDC_GENDER","SDC_CHILD_NB","LAB_CRP","PM_HIP")
2。带有变量名称的 data.table 示例。
TD3 = data.table(q128 = c(1, 2, 1, 2), q129 = c(1, 5, 2, 4), q130 = c(0.8, 3.0, 10.0, NA), q131 = c(55, 56, 80, 79))
TD3
TD4 = data.table(q128 = c(1, 1, 1, 2), q129 = c(1, 3, 2, 999), q130 = c(0.9, 3.1, NA, 9.0), q131 = c(58, 60, 45, NA))
TD4
【问题讨论】:
-
是否所有的 data.frames 都具有完全相同的结构,即列数?
-
将列名保留在第二行对我来说毫无意义。不能像这里一样在一行上使用
character,在另一行上使用numeric。您所说的与大多数语言中数据框的定义不兼容。在重命名之前,您可以将旧名称保存在其他地方(不是在每个框架中)。 -
是的,此阶段的列数相同。我为每个 data.table 中的每一列的每个变量名创建了键。
-
原来的列名就是q128、q129、q130等。但在每个 R data.table 中都不同。我尝试使用 SDC_GENDER 等键来协调表。但此时希望将键和原始变量名都保留在 data.tables 中。现在,我有相同的表,其中包含原始变量列名和键。
-
现在我注意到,虽然很累,但为两个 data.tables 创建了相同的变量名 (q128...)。应该是不同的,所以他们不马赫。我再举一个例子。
标签: r merge data.table key tidyverse