我需要创建一个“键”变量,因为我想合并两个数据集。
数据集1 具有变量ymd
。
数据集2 具有三个变量y
,m
和d
。
ymd (20050516,20060512)
y(2005,2006)
m(05,05)
d(16,12)
两个选项:
ymd
列出为3个变量y
,m
和d
。答案 0 :(得分:1)
假设您有两个数据帧:
df1 <- data.frame(
ymd = c(20050516,20060512),
x = c(1,2)
)
df2 <- data.frame(
y = c(2005,2006),
m = c('05','05'),
d = c(16,12),
z = c(5,10)
)
您可以通过使用y
粘贴m
,d
和paste0
元素并将其更改为数字来合并:
df2 %>%
mutate(
ymd = as.numeric(paste0(y,m,d))
) %>%
left_join(df1)
输出:
>
Joining, by = "ymd"
y m d z ymd x
1 2005 05 16 5 20050516 1
2 2006 05 12 10 20060512 2
您可以根据需要调整合并(例如right_join
)。
答案 1 :(得分:1)
这里有个例子。
我将变量用作字符串而不是数字,这使操作变得更容易。您可以像我的示例一样使用static const Bar& constVar() {
static const Bar instance(1);
return instance;
};
进行转换。
对于选项1,我仅使用constVar()
将文本粘贴在一起。
对于选项2,我使用constVar
在核心位置剪切文本。
如果需要输出为数字而不是字符串,则只需使用as.character()
,就像在打印功能中一样。
这是代码,如果您还有其他问题,请告诉我:
paste0()