Я написал функцию R
, которая принимает входные данные и выводит фрейм данных. Он работал так, как должен, однако, когда я попытался добавить еще одну строку для имени единственного столбца выходного фрейма данных, это не удалось.
Для этого я попытался использовать colnames()
.
Результатом неудачной операции является character
вместо правильного фрейма данных. Вот небольшой воспроизводимый пример, который прямо касается проблемы.
# Fake Data
numbers = rnorm(5)
# Functions ---------------------------------------------------------------
# Dataframe is generated correctly.
print_df_right = function(my_input){
number_df = data.frame(my_input)
}
foo = print_df_right(numbers)
foo # A correct, column-nameless dataframe
#> my_input
#> 1 0.3379014
#> 2 0.5306519
#> 3 0.7689149
#> 4 -0.5548860
#> 5 -2.1199438
# Dataframe is ruined because colnames() turns it into a vector.
ruin_my_df = function(my_input){
number_df = data.frame(my_input)
colnames(number_df) = c("numbers")
}
foo = ruin_my_df(numbers)
foo # This was supposed to be a dataframe, but instead is a character.
#> [1] "numbers"