2016-05-14 2 views
0

Я учусь писать функцию R, чтобы получить ввод с клавиатуры, чтобы создать набор новых строк в новый dataframe и вернуть новый dataframe:считываются данные dataframe строки с R

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

Можете ли вы рассказать мне, что вызывает ошибки?

Кроме того, как я могу назвать функцию, просто вызвать функцию, или мне нужно получить dataframe через переменную, как x<- enterData?

Любые улучшения в подходе к получению рядов данных будут оценены.

Благодаря

ответ

1

Вы используете это на Rstudio или R? Одна ошибка может заключаться в том, чтобы проверить ваши комментарии, чтобы убедиться, что они действительно закомментированы. Я запустил его на Rstudio и на консоли. Все распечатывается, за исключением события и времени. Here is how I ran it

+0

Привет, я запускаю его в RStudio. Я попробую снять комментарии. Спасибо – Jazzmine

+0

Bingo Justin, у меня был комментарий на две строки, но только прокомментировал первую строчку. Еще раз спасибо. – Jazzmine