[英]update the value of a cell in a dataframe in R
我正在尝试逐行填充变量的值,为此我循环遍历 dataframe 并且当我有要填充的值时,我这样做:
listadoProyectosPlanificados<-function(df){
variables<-names(df)
variablesAIgnorar<-c('Total','JefeProyecto','Ranking','Proyectos')
variablesATenerEncuenta<-subset(variables,!(variables %in% variablesAIgnorar))
for (indiceFila in 1:nrow(df)) {
proyectos<-vector()
for (indiceColumna in 1:length(variablesATenerEncuenta)) {
if (df[indiceFila,variablesATenerEncuenta[indiceColumna]]!=0) {
proyectos<-append(proyectos,variablesATenerEncuenta[indiceColumna])
}
}
print(indiceFila)
print(ncol(df))
print(paste(proyectos,collapse = ', '))
df[indiceFila,ncol(df)]<-paste(proyectos,collapse = ', ')
}
}
但是这句话在df中什么都不做
df[indiceFila,ncol(df)]<-paste(proyectos,collapse = ', ')
但是如果我在控制台中执行此操作 df[1,49]<-paste(c('hola','adios'),collapse = ', ')
> df[1,49]
[1] "hola, adios"
它更新
有什么想法吗?
问候
将MyDataFrame
更改为您的数据框的名称,它应该可以工作。
listadoProyectosPlanificados <- function(df){
variables<-names(df)
variablesAIgnorar<-c('Total','JefeProyecto','Ranking','Proyectos')
variablesATenerEncuenta<-subset(variables,!(variables %in% variablesAIgnorar))
for (indiceFila in 1:nrow(df)) {
proyectos<-vector()
for (indiceColumna in 1:length(variablesATenerEncuenta)) {
if (df[indiceFila,variablesATenerEncuenta[indiceColumna]]!=0) {
proyectos<-append(proyectos,variablesATenerEncuenta[indiceColumna])
}
}
print(indiceFila)
print(ncol(df))
print(paste(proyectos,collapse = ', '))
df[indiceFila,ncol(df)]<-paste(proyectos,collapse = ', ')
}
return( df ) #new statement
}
MyDataFrame <- listadoProyectosPlanificados(MyDataFrame)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.