增加乘数
Increasing Multiplier
我有一个数据框 (df),其中包含如下所示的两个变量:
pricePerBusiness num_businesses
1 4228.966 3755
2 4966.552 3243
3 4678.073 3109
4 4752.259 2990
5 4545.194 2949
我想制作一个新的数据框,它是此数据框和标量(本例中为 15)的乘积,每行的值 (1,2,3,...) 都会增加,例如:
df2[1,] <- 1*df[1,]$pricePerBusiness + 0.15*df[1,]$num_businesses - 15*1
df2[2,] <- 1*df[2,]$pricePerBusiness + 0.15*df[2,]$num_businesses - 15*2
df2[3,] <- 1*df[3,]$pricePerBusiness + 0.15*df[3,]$num_businesses - 15*3
等等。但是我的数据框 (df) 有很多行,有没有更快的方法来做到这一点?
用
修改你的标量
as.numeric(rownames(df))*0.15
下面是一个可能的 dplyr
解决方案。请确保您的问题是可重现的。
# importing dplyr
library(dplyr)
# reproducing your original data frame
df <- data_frame(
pricePerBusiness = c(4228.966, 4966.552, 4678.073, 4752.259, 4545.194),
num_businesses = c(3755, 3243, 3109, 2990, 2949)
)
# creating the final data frame you want
df2 <- df %>%
mutate(
# constructing the term to substract
penalty = 15 * 1:nrow(df),
# computing the value needed
value = pricePerBusiness + (0.15 * num_businesses) - penalty
)
此外,在基础中使用 with():
with(df,
df2 <<- data.frame(result = pricePerBusiness + 0.15 * num_businesses - 15 *
(1:length(num_businesses)))
)
我对 df 了解不多,但我搜索并找到了这个链接,希望它能对你有所帮助
我有一个数据框 (df),其中包含如下所示的两个变量:
pricePerBusiness num_businesses
1 4228.966 3755
2 4966.552 3243
3 4678.073 3109
4 4752.259 2990
5 4545.194 2949
我想制作一个新的数据框,它是此数据框和标量(本例中为 15)的乘积,每行的值 (1,2,3,...) 都会增加,例如:
df2[1,] <- 1*df[1,]$pricePerBusiness + 0.15*df[1,]$num_businesses - 15*1
df2[2,] <- 1*df[2,]$pricePerBusiness + 0.15*df[2,]$num_businesses - 15*2
df2[3,] <- 1*df[3,]$pricePerBusiness + 0.15*df[3,]$num_businesses - 15*3
等等。但是我的数据框 (df) 有很多行,有没有更快的方法来做到这一点?
用
修改你的标量as.numeric(rownames(df))*0.15
下面是一个可能的 dplyr
解决方案。请确保您的问题是可重现的。
# importing dplyr
library(dplyr)
# reproducing your original data frame
df <- data_frame(
pricePerBusiness = c(4228.966, 4966.552, 4678.073, 4752.259, 4545.194),
num_businesses = c(3755, 3243, 3109, 2990, 2949)
)
# creating the final data frame you want
df2 <- df %>%
mutate(
# constructing the term to substract
penalty = 15 * 1:nrow(df),
# computing the value needed
value = pricePerBusiness + (0.15 * num_businesses) - penalty
)
此外,在基础中使用 with():
with(df,
df2 <<- data.frame(result = pricePerBusiness + 0.15 * num_businesses - 15 *
(1:length(num_businesses)))
)
我对 df 了解不多,但我搜索并找到了这个链接,希望它能对你有所帮助