Q:有若干个文件,其中一个文件如图所示:

excel用rand生成一行数据(R批量操作计算Excel百分比)(1)

求:1-30列中的数值占原始列中的百分比。解决办法:

Excel公式计算,存在问题:输入公式时候,原始数据不存在。 R语言解决。

{ rm(list=ls()) getwd() setwd("E:\\0000\\0001数据\\数据\\cess\\示例文件")} ##import 表格 library(readxl) dataset <- read_excel("示例文件.xlsx", sheet = 3) View(dataset) { dat <- dataset ## 每一行的3:30除以原始的,然后循环。 a <- c(1:100) b <- c(3:30) dat_T <- dat[1,] dat_T <- dat_T[-1,] for(i in a){ dat1 <- dat[i,] for (j in b) { dat1[1,j] <- dat1[1,j]/dat1[1,2] } dat1 <- as.data.frame(dat1) dat_T <- rbind(dat_T,dat1) } } library(xlsx) write.xlsx(dat_T, file = "示例文件.xlsx", sheetName = "计算百分比",append = TRUE)

重点地方: for循环中的代码。

for(i in a){ dat1 <- dat[i,] for (j in b) { dat1[1,j] <- dat1[1,j]/dat1[1,2] } dat1 <- as.data.frame(dat1) dat_T <- rbind(dat_T,dat1) }

excel用rand生成一行数据(R批量操作计算Excel百分比)(2)

,