【发布时间】:2019-09-24 15:38:10
【问题描述】:
我们可以使用<- 运算符和rownames(df) 来分配数据框的行名,如下所示:
df<-data.frame(a=letters[1:5], b=1:5, c=LETTERS[1:5])
df
rownames(df) <- df[,1]
df[,1] <- NULL
df
上面的脚本会将第一列转换为行名,输出如下:
df
a b c
1 a 1 A
2 b 2 B
3 c 3 C
4 d 4 D
5 e 5 E
df
b c
a 1 A
b 2 B
c 3 C
d 4 D
e 5 E
有没有办法使用管道%>% 来做到这一点?
我尝试了df %>% rownames(.) <- .[,1],但失败了。
关键问题是不能在%>%之间使用<-
【问题讨论】:
-
我想你想要 tibble 包中的
column_to_rownames- tibble.tidyverse.org/reference/rownames.html -
功能很简单,有没有办法不用额外的包?
-
%>%对于避免嵌套很有用。它将foo(bar(baz(x)))转换为x %>% foo %>% bar %>% baz。在您的示例中,您从rownames(df) <- df[,1]开始,它没有嵌套。您不能在作业的左侧使用%>%。 -
@kittygirl - 如果您使用的是
%>%,我只是假设您可能已经在使用 dplyr + tibble 等。