首页 > 解决方案 > (R) 将列从名称重命名为响应时间序列

问题描述

我需要将名称为“V4、V5 等... V503”的列重命名为以两毫秒为增量的时间序列(即“-100-98、97-95 等...压缩到 900 毫秒”)。

对于包含从 -100 毫秒到 900 毫秒的大脑数据的列,这些增量为 2 秒。我试过使用 names() 和 substring() 但 R 不喜欢数字方面。任何人都可以帮忙吗?谢谢!

标签: r

解决方案


您需要使用 将数字转换为字符串as.character-您可以将偏移序列粘贴在一起以获取它们的范围,它会使用分隔符将数据强制转换为字符串。然后您需要删除 with 的实例,--以便gsub负值没有 double -。请注意,在对这些列进行子集化时,您需要使用反引号。

sq <- seq(-100, 898, by=2)
sq2 <- seq(-98, 900, by=2)

nams <- paste(sq, sq2, sep='-')
nams <- gsub('--', '-', nams)

# generating fake dataframe
n <- length(sq)
df <- matrix(data=rep(1, n), nrow = 1, ncol=n)
df <- as.data.frame(df)

# replace names

colnames(df) <- nams

head(df)

推荐阅读