【发布时间】:2020-08-22 00:30:59
【问题描述】:
我写了一个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"
【问题讨论】: