按名称引用列名

发布于 2025-01-20 09:45:09 字数 780 浏览 3 评论 0原文

我发现这个解决方案给出列前缀:

m2 <- cbind(1,1:4)
colnames(m2) <- c("x","Y")
colnames(m2) <- paste("Sub", colnames(m2), sep = "_")
m2

我想做什么,通过使用其列名称,仅粘贴前缀两列x

我尝试过的其他几件事:

colnames(m2)["x"] <- paste("Sub", colnames(m2)["x"], sep = "_")

最好的方法是什么?

所需的输出:

colnames(m2)[1] <- paste("Sub", colnames(m2)[1], sep = "_")

使用Maël的解决方案进行编辑,

我尝试执行以下操作:

m2 <- cbind(1,1:4,4:1)
colnames(m2) <- c("x","y","z")
colnames(m2)[colnames(m2) == c("x","z")] <- paste("Sub", colnames(m2)[colnames(m2) == c("x","z")], sep = "_")

I found this solution to give columns prefixes:

m2 <- cbind(1,1:4)
colnames(m2) <- c("x","Y")
colnames(m2) <- paste("Sub", colnames(m2), sep = "_")
m2

What I would like to do instead, is paste the prefix only two column x, by using its column name.

Among several other things I tried:

colnames(m2)["x"] <- paste("Sub", colnames(m2)["x"], sep = "_")

What would be the best way to do this?

Desired output:

colnames(m2)[1] <- paste("Sub", colnames(m2)[1], sep = "_")

EDIT

Using Maël's solution I tried to do the following:

m2 <- cbind(1,1:4,4:1)
colnames(m2) <- c("x","y","z")
colnames(m2)[colnames(m2) == c("x","z")] <- paste("Sub", colnames(m2)[colnames(m2) == c("x","z")], sep = "_")

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

許願樹丅啲祈禱 2025-01-27 09:45:09
m2 <- cbind(1,1:4)
colnames(m2) <- c("x","Y")

colnames(m2)[colnames(m2) == "x"] <- paste("Sub", colnames(m2)[colnames(m2) == "x"], sep = "_")

m2
#     Sub_x Y
#[1,]     1 1
#[2,]     1 2
#[3,]     1 3
#[4,]     1 4

使用多个值,在%中使用%:

m2 <- cbind(1,1:4,4:1)
colnames(m2) <- c("x","y","z")
colnames(m2)[colnames(m2) %in% c("x","z")] <- paste("Sub", colnames(m2)[colnames(m2) %in% c("x","z")], sep = "_")

     Sub_x y Sub_z
[1,]     1 1     4
[2,]     1 2     3
[3,]     1 3     2
[4,]     1 4     1
m2 <- cbind(1,1:4)
colnames(m2) <- c("x","Y")

colnames(m2)[colnames(m2) == "x"] <- paste("Sub", colnames(m2)[colnames(m2) == "x"], sep = "_")

m2
#     Sub_x Y
#[1,]     1 1
#[2,]     1 2
#[3,]     1 3
#[4,]     1 4

with more than one value, use %in%:

m2 <- cbind(1,1:4,4:1)
colnames(m2) <- c("x","y","z")
colnames(m2)[colnames(m2) %in% c("x","z")] <- paste("Sub", colnames(m2)[colnames(m2) %in% c("x","z")], sep = "_")

     Sub_x y Sub_z
[1,]     1 1     4
[2,]     1 2     3
[3,]     1 3     2
[4,]     1 4     1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文