使用 R 逐行将数据读入数据帧

Read data into dataframe by row with R

我正在学习编写一个 R 函数以从键盘获取输入以在新数据帧和 return 新数据帧中创建一组新行:

enterData <- function(numRows, df_name="enterDataDF"){
  #two parameters: how many times to run (how many rows do you want) and 
                    dataframe name to be preserved

  #create an empty dataframe with slots for number of rows user specifies
  tempdf <- data.frame(id=1:numRows)

  #get input data from keyboard
  for (i in 1:numRows)
  {
    userID      <- as.character(readline("What is userID? "))
    eventTime   <- as.numeric(readline("What is Time To Event? "))
    outcome     <- as.character(readline("What is Outcome (0=fail, 1=success)? "))

    #put row just entered into the ultimate dataframe
    df_name <- rbind(tempdf, c(userID, eventTime, outcome))

    #print a blank line for readability
    print("")
  }

  #show the inputted data
  print("Displaying collected data")
  df_name

  #return dataframe back to calling program
  return (df_name)
}

我遇到了一些错误,如下所示:

Error #1 Code: for (i in 1:numRows) Error: Error in 1:numRows : NA/NaN argument

Error #2 Code: df_name Error: object 'df_name' not found

Error #3 Code: return (df_name) Error: object 'df_name' not found

你能告诉我是什么导致了这些错误吗?

此外,我将如何调用该函数,只需调用该函数,还是需要通过 x<- enterData 之类的变量接收数据帧?

如能改进获取数据行的方法,我们将不胜感激。

谢谢

你运行这是在 Rstudio 还是 R 上?一个错误可能是检查您的注释以确保它们确实被注释掉了。 我 运行 它在 Rstudio 和控制台上。除了 eventTime 和结果之外,一切都在打印出来。