繁体   English   中英

更新 R 中 dataframe 中单元格的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM