R将特定的行和列乘以常数

Posted

技术标签:

【中文标题】R将特定的行和列乘以常数【英文标题】:R Multiply specific rows and columns by constant 【发布时间】:2022-01-14 13:03:14 【问题描述】:

我有以下数据:

type <- c(1:4)
year1 <- c(1:4)
year2 <- c(1:4)
year3 <- c(1:4)
data <- data.frame(type, year1, year2, year3)

我想将 Year 列中的底部两行乘以 2。

type <- c(1:4)
year1 <- c(1, 2, 6, 8)
year2 <- c(1, 2, 6, 8)
year3 <- c(1, 2, 6, 8)
final <- data.frame(type, year1, year2, year3)

如何在不影响其他列的行的情况下执行此操作?

【问题讨论】:

data[3:4,]*2? data[3:4, -1] &lt;- 2 * data[3:4, -1] 一个非常灵活的方法是:data[(nrow(data)-1):nrow(data),]&lt;- data[(nrow(data)-1):nrow(data),grep(pattern="year",x=names(data))]*2 【参考方案1】:

如果您不知道数据的长度,并且想要将所有包含“年份”的列相乘,您可以这样做:

data[(nrow(data)-1):nrow(data),]<-data[(nrow(data)-1):nrow(data),grep(pattern="year",x=names(data))]*2

  type year1 year2 year3
1    1     1     1     1
2    2     2     2     2
3    6     6     6     6
4    8     8     8     8

【讨论】:

【参考方案2】:

这是使用dplyrtidyr 的解决方案。这将允许您根据需要调整参数。

library(dplyr)
library(tidyr)

newdata <- data %>%
  gather(., year, value, year1:year3) %>%
  mutate(newvalue = ifelse(type > 2, value * 2, value)) %>%
  select(-value) %>%
  spread(., year, newvalue)

【讨论】:

以上是关于R将特定的行和列乘以常数的主要内容,如果未能解决你的问题,请参考以下文章

TableLayoutPanel隐藏指定的行和列 求指导

r shiny - DataTableOutput - 颜色特定的行和列

在 R 中,使用 rle(运行长度编码)的结果,包括命名的行和列标题

从 SQL 数据库中选择特定的行和列

如何为numpy数组中的特定行和列分配字符串值?

Python - 如何在 Python 中从 Google 表格中读取特定范围的行和列?