如何创建数据框时避免继承向量的行名?
解决方法:创建数据框时不继承向量名称
当然有办法,以下是几种常用的实现方式:
方法1:转换前先去掉向量的名称
用unname()函数剥离向量的名称属性,再传入data.frame():
vec <- setNames(c(3,2,1), c("a", "b", "c")) df <- data.frame(my_var = unname(vec)) print(df) # 输出: # my_var # 1 3 # 2 2 # 3 1
方法2:创建数据框后清除行名
先正常创建数据框,再通过rownames()把行名设为NULL:
vec <- setNames(c(3,2,1), c("a", "b", "c")) df <- data.frame(my_var = vec) rownames(df) <- NULL print(df) # 输出: # my_var # 1 3 # 2 2 # 3 1
方法3:使用tibble包创建(推荐)
tibble是data.frame的现代替代,默认不会将向量名称转为行名,适合日常数据处理:
library(tibble) vec <- setNames(c(3,2,1), c("a", "b", "c")) df <- tibble(my_var = vec) print(df) # 输出: # # A tibble: 3 × 1 # my_var # <dbl> # 1 3 # 2 2 # 3 1
内容的提问来源于stack exchange,提问作者chanp
相关产品推荐
相关产品推荐

