这是一个样本(通常是15 x 17),来自我的数据集entrepreneur
,它是从Excel导入的read_excel
:
structure(list(Factors = c("Competition", "Cultural Support", "Financing", "High Growth", "Human Capital"), `Baden-Württemberg` = c("0.71", "0.66", "0.81", "0.62", "0.46"), Bayern =c("0.67", "0.66", "0.83", "0.77", "0.49"), Berlin = c("1.00", "0.56", "0.90", "0.82", "0.79"), Brandenburg = c("1.00", "0.55", "0.64", "1.00", "0.77")), row.names = c(NA, -5L), class = c("tbl_df", "tbl", "data.frame"))
或以这种格式:
EntrepreneurIndex
# A tibble: 5 x 5
Factors `Baden-Württemberg` Bayern Berlin Brandenburg
<chr> <chr> <chr> <chr> <chr>
1 Competition 0.71 0.67 1.00 1.00
2 Cultural Support 0.66 0.66 0.56 0.55
3 Financing 0.81 0.83 0.90 0.64
4 High Growth 0.62 0.77 0.82 1.00
5 Human Capital 0.46 0.49 0.79 0.77
你可以看到的第一列是由我的因子变量组成的。我想把第一列转换成行名。我使用了如下代码
rownames(entrepreneur) <- entrepreneur[,1]
,这导致了``.rowNamesDF<-(x, value = value) : non-valid 'row.names' length Zusätzlich: Warnmeldung: Setting row names on a tibble is deprecated.
中的错误消息错误
不幸的是,我是tibles概念的新手。我曾尝试将数据转换为 Dataframe ,就像另一篇文章https://stackoverflow.com/a/50904626建议使用as.data.frame(entrepreneur)
一样,但这只会导致与以前相同的错误消息。
去https://tibble.tidyverse.org/reference/rownames.html建议我使用
column_to_rownames(entrepreneur, var = "Factors")
这不会导致错误,但不会将第一列转换为行名。
在阅读了建议和其他帖子之后,我现在不确定是否可以将tibble的第一列转移到row names列中。如果可能的话,我最好将第一列作为行名,以便进一步分析(回归等)。
2条答案
按热度按时间w8f9ii691#
首先,你可以看出区别
尝试下面的代码(使用
entrepreneur[[1]]
而不是entrepreneur[,1]
)wgxvkvu92#
您可以像这样设置行名:
然而,如果你打算对每一行的数据运行回归,而不是设置行名称,你可能想看看如何制作嵌套的tibble-基本上,一行由tibble组成的tibble(tibbles in tibbles!)。然后你可以用
purrr::map()
在这些嵌套的tibble上迭代函数,例如对每一行数据运行回归,并将结果全部保存在一个tibble中。你可以阅读更多关于嵌套tibles这里:https://tidyr.tidyverse.org/articles/nest.html