2015-11-19 2 views
1

Я изо всех сил пытаюсь использовать некоторые параметры командной строки, которые я передаю в R Script. Мой файл сценарий выглядит, как показано ниже:Работа с параметрами командной строки R - столбцы кадра данных

library(dplyr) 
args <- commandArgs(trailingOnly = TRUE) 

grpd_by_variable<-get(args[1])%>% 
    group_by(args[2])%>% 
    mutate(DAY_GRPD_TOTAL=n())%>% 
    filter(row_number()==1) 

print(nrow(grpd_by_variable)) 

Моего командная строка утверждение, как показано ниже:

RScript filename.R my_data_frame col1 

Здесь my_data_frame является кадром данных Я хочу, чтобы работать и затем выполнить некоторые группировки, используя dplyr пакета. col1 - это имя столбца в моем кадре данных. Когда я запускаю этот оператор командной строки, оператор print выводит только 1 как вывод, что означает только одну строку. Однако, когда я сам подставляю переменные и запускаю скрипт, как показано ниже, он печатает значение 7, соответствующее семи дням недели.

grpd_by_variable<-get(my_data_frame)%>% 
    group_by(col1)%>% 
    mutate(DAY_GRPD_TOTAL=n())%>% 
    filter(row_number()==1) 

print(nrow(grpd_by_variable)) 

Я считаю, что его делают с group_by (арг [2 [), где его не в состоянии понять арг [2] правильно. Может кто-нибудь, пожалуйста, дайте мне знать, как ссылаться на имена столбцов фрейма в скрипте, которые передаются в качестве параметров командной строки?

Я пробовал group_by(args[2]), group_by(as.name(args[2])), group_by(as.character(args[2])) и group_by(get(args[2])). Но до сих пор мне не повезло. Поскольку я новичок в R, я не мог понять это точно, но выглядит его тривиальной проблемой.

ответ

0

Попробуйте этот пример:

#dummy arg inputs 
args <- c("mtcars","gear") 

#notice the "_" - "group_by_" 
get(args[1]) %>% 
    group_by_(args[2]) %>% 
    mutate(cnt=n()) 
+0

Спасибо @ zx8754. используя group_by_. Большое спасибо за вашу своевременную помощь! Отмечая это как ответ. – greenhorntechie

Смежные вопросы