gpt4 book ai didi

R:用 X 而不是 V 重命名数据框的列名

转载 作者:行者123 更新时间:2023-12-04 11:38:43 24 4
gpt4 key购买 nike

我有这个创建数据框的简单代码:

n = 5
p = 20
x=matrix(rnorm(n*p), nrow=n, ncol=p)
df=as.data.frame(x)

我得到了数据框的这个结果:

          V1         V2         V3         V4          V5          V6         V7         V8          V9        V10        V11         V12        V13        V14
1 1.8006821 0.2159150 0.2475421 -0.9591421 -0.05854140 -0.27782478 -0.5720555 -1.2093522 -1.34788746 -0.8452290 -1.5755013 -0.63180230 0.7267592 0.3079042
2 -1.2331962 0.3851325 0.7456002 0.6644699 0.43867770 0.52313129 -0.3429952 1.1231887 -0.78820594 -0.4749721 -1.1753511 0.44071083 0.5779413 -0.1477964
3 -1.3504110 -0.3694895 0.3419928 0.5078171 -0.88020980 -0.71862641 0.9641083 -2.7750092 -0.24178360 -0.1351366 -0.1801874 -0.08418993 0.7812341 -1.0273796
4 -0.3446066 -0.8032128 -0.7736583 -0.6863910 0.92667421 -0.06884001 0.5956594 -0.7848495 -0.09455081 0.3616341 0.3650726 -0.20903196 -0.8109611 0.2280463
5 -0.2685629 -0.8994275 -0.4956517 -1.0406881 0.01477389 -0.43855661 -0.5896001 0.1434798 -1.57407092 0.2337882 1.1170875 1.84402283 0.3901575 0.3403759
V15 V16 V17 V18 V19 V20
1 -0.1450630 -0.7464377 1.3052135 0.29509627 0.09459443 -0.64872578
2 -0.5690047 -0.6694732 -0.1550677 0.15692547 -0.11672445 -0.07493947
3 0.3114352 1.4360456 -1.2353439 0.09812837 -0.66051299 1.00596707
4 -1.9778373 -0.6626688 -0.1474813 -0.41951635 0.80435969 0.40983722
5 0.1074216 -0.9764558 0.1439187 -0.51275394 0.44831639 1.18295229

有没有办法自动重命名数据框的列名?而不是使用V1, V2,...V20X1,X2...X20

最佳答案

在列名上使用 sub() 应该可以

colnames(df) <- sub("V", "X", colnames(df))

df[, 1:5]

# X1 X2 X3 X4 X5
# 1 -1.3082368 0.1279402 -0.5617098 -0.5270066 -0.1255816
# 2 0.6039559 0.4957135 -0.6753756 -0.3299313 1.6700390
# 3 -1.9705086 0.3714967 -0.8691308 -0.9567827 0.2744300
# 4 -0.7793934 -0.7170730 1.0079133 0.4428833 -0.4107202
# 5 -0.7248188 0.6195181 1.6373108 0.2425697 -2.7285534

正如 alistaire 提出的管道,这里有一种方法可以在管道中实现它:

library(pipeR)

n = 5
p = 20
df <- matrix(rnorm(n*p), nrow=n, ncol=p) %>>%
as.data.frame %>>%
"colnames<-"(sub("V", "X", colnames(.))) %>>%
(? str(.))

关于R:用 X 而不是 V 重命名数据框的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50360165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com