Я хотел бы использовать функцию для установки первого столбца кадра данных в качестве имен строк.Я попытался включить column_to_rownames () внутри функции.Вот моя первая попытка (после консультации этой статьи ).
df <- tibble(a = c("a","a","a","b","b"), b= sample(1:10, 5))
col_to_row <- function(df, grp_var){
require(dplyr)
grp_var <- enquo(grp_var)
df %>% column_to_rownames(var = quo_expr(grp_var))
}
col_to_row(df, a)
Что выдает ошибку:
Error in match(x, table, nomatch = 0L) : 'match' requires vector arguments
Я пытался обменять quo_expr (grp_var) на !! grp_var:
col_to_row <- function(df, grp_var){
require(dplyr)
grp_var <- enquo(grp_var)
df %>% column_to_rownames(var = !!grp_var)
}
Что выдает ошибку:
Error in is_quosure(e2) : argument "e2" is missing, with no default
Я попробовал решение с базой R:
col_to_row_base <- function(df, grp_var){
df2 <- df[,-1]
print(df2) # for debugging
print(df[,1]) # for debugging
row.names(df2) <- df[,1]
}
, которое дает ошибку:
Error in `.rowNamesDF<-`(x, value = value) : invalid 'row.names' length
Любые мысли о том, как я могу использовать функцию для установкиПервый столбец данных в виде имен строк?
Это мой первый пост здесь, поэтому, пожалуйста, дайте мне знать, если это не соответствует стандартам.
Запуск версии R 3.5.2, Платформа: x86_64-pc-linux-gnu (64-разрядная версия), Linux Mint 19, dplyr_0.8.0.1