r - 如何在数据框中创建具有另一个值的列
问题描述
我有这个 df 有 3 列
> df
ProyectoID Nombre Contratado
1 D0000052 D.O.Línea Alta Velocidad Vitor 3606443.81
2 X0000100 AT Conservación Red Foral Bizk 2218057.00
3 D0000062 D.O. Alta velocidad Hernialde- 1545665.21
4 CABL2016 Proyectos y D.O. de Abastecimi 1160413.00
5 X0000120 Bloque proyectos y obras STI 2 1063783.11
和 df2 只有一列:
> df2
Años
1 2007
2 2008
3 2009
4 2010
我想为 df2 的每个值向 df 添加一个新列,所以在这个循环中
for (variable in df2) {
.....
}
我正在尝试几种选择但不起作用
df$variable=0
或者
df <- df %>% mutate(variable=0)
这会创建我,也就是说,它会创建名称为“变量”而不是值的新列
df
ProyectoID Nombre Contratado variable
1 D0000052 D.O.Línea Alta Velocidad Vitor 3606443.81 0
2 X0000100 AT Conservación Red Foral Bizk 2218057.00 0
3 D0000062 D.O. Alta velocidad Hernialde- 1545665.21 0
4 CABL2016 Proyectos y D.O. de Abastecimi 1160413.00 0
我试过这个但有错误
for (indice in 1:nrow(df2)) {
df$df2[indice,]=0
df<-df%>%mutate(df2[indice,]=0)
df<-df%>%mutate(as.character(df2[indice,])=0)
}
请问有什么想法吗?
我需要这样的东西
ProyectoID Nombre Contratado 2007 2008 2009 2010 2011
1 D0000052 D.O.Línea Alta Velocidad Vitor 3606443.81 0 0 0 0
2 X0000100 AT Conservación Red Foral Bizk 2218057.00 0 0 0 0
问候
解决方案
您可以转换df2$Años
为字符并将多列分配给 0。
df[as.character(df2$Años)] <- 0
# ProyectoID Nombre Contratado 2007 2008 2009 2010
#1 D0000052 D.O.Línea Alta Velocidad Vitor 3606444 0 0 0 0
#2 X0000100 AT Conservación Red Foral Bizk 2218057 0 0 0 0
#3 D0000062 D.O. Alta velocidad Hernialde- 1545665 0 0 0 0
#4 CABL2016 Proyectos y D.O. de Abastecimi 1160413 0 0 0 0
#5 X0000120 Bloque proyectos y obras STI 2 1063783 0 0 0 0
推荐阅读
- c# - 切换到另一个表单时禁用 C# Winform 标签
- typescript - typescript 文件被识别为 MPEG-2 ts 文件
- php - 箭头和输入键在 datalist 上无法正常工作如何修复
- stripe-payments - 在本期结束时降级 Stripe 订阅?
- angular - Angular 8根据父类禁用按钮
- java - 在 reduce 操作中使用 StringBuilder(...) 作为标识值会产生不可预测的结果
- javascript - 如何使用javascript从字符串生成关键字
- php - LastModified http 标头上的 500 内部服务器错误(无效字符)
- android - Xposed 模块“提前三步”在 Android 7.0 上崩溃
- python - 循环多维numpy数组