gpt4 book ai didi

r - 使用循环变量

转载 作者:行者123 更新时间:2023-12-02 00:31:15 25 4
gpt4 key购买 nike

我想重命名大量的列(列标题)以使用数字名称而不是组合的字母+数字名称。由于数据以原始格式存储的方式,如果我想与特定的数据列交互(因为随机问题由于回答评论很长,所以完全从数据中过滤掉了),但我希望能够通过 data$152 访问它们。此外,我的数据中大约一半的列名称加载了 class(data$152) = NULL 但 class(data[[152]]) = integer(如果我重命名 data[[152]] 文件,这样我就可以将 class(data$152) 视为整数。

因此,有没有办法将循环迭代次数用作列名(如下所示)

    for (n in 1:415) {
names(data)[n] <-"n" # name nth column after number 'n'
}

这将重新分配我所有的列标题并确保我不会遇到导致 null 的问题类?

作为额外的背景信息,我的数据是从逗号分隔的 .csv 文件导入的,其中值 99 分配给 NA 的答案,第一行是列名/标题

    data <- read.table("rawdata.csv", header=TRUE, sep=",", na.strings = "99")

有 415 列标题格式为 Q001、Q002 等大约有 200 行没有行标签/没有标签列

最佳答案

您可以不使用循环来执行此操作,如下所示:

names(data) <- 1:415

举个例子:

dat <- data.frame(a=1:4, b=2:5, c=3:6, d=4:7)
dat
a b c d
1 1 2 3 4
2 2 3 4 5
3 3 4 5 6
4 4 5 6 7

现在重命名列:

names(dat) <- 1:4
dat
1 2 3 4
1 1 2 3 4
2 2 3 4 5
3 3 4 5 6
4 4 5 6 7

编辑:如何访问您的新数据

@Ramnath 非常准确地指出,您将无法使用 dat$1 访问您的数据:

dat$1
Error: unexpected numeric constant in "dat$1"

相反,您必须将列名用反引号括起来:

dat$`1`
[1] 1 2 3 4

或者,您可以结合使用字符和数字数据来重命名您的列。这可能是处理您的问题的更方便的方法:

names(dat) <- paste("x", 1:4, sep="")
dat
x1 x2 x3 x4
1 1 2 3 4
2 2 3 4 5
3 3 4 5 6
4 4 5 6 7

关于r - 使用循环变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6652387/

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