背景:仪器测量的数据,有很多参数是根据测量的其他数值计算出来的,目前想写一个程序,将所有的测量值导入 R,而不必单个 excel 点开,将数据拷出(数据量大时太费事,因为一次测量可能几十上百个数据文件)。
因为我测试过,直接读取不带实际数据中头文件的excel是能读取公式的,但有那部分就不可以了。
另外,如果在 R 中手动输入所有的参数公式,再重新计算,工作量有点大,因为计算的参数特别多,不是没考虑过,如果能直接导入,当然比再写百八十行代码要轻松的多。
目前使用 readxl
导入,基本的代码如下:
library(readxl)
readxl_6800 <- function(path, name_rows = 42, data_rows = 43){
data_name <- read_excel(path, range= cell_rows(name_rows))
df <- read_excel(path, skip = data_rows, col_names = FALSE)
colnames(df) <- colnames((data_name))
return (df)
}
leaf_data <- readxl_6800("leaf.xlsx")
但发现导入的数据中,需要计算的参数(也就是带公式的单元格都是0),如下:
# A tibble: 360 x 10
obs time elapsed date TIME E A Ca Ci Pci
<dbl> <dbl> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 1500971222. 0 20170725 16:27~ 1.50e9 0 0 0 0 0
2 2 1500971222. 1 20170725 16:27~ 1.50e9 0 0 0 0 0
3 3 1500971224. 2 20170725 16:27~ 1.50e9 0 0 0 0 0
4 4 1500971224. 3 20170725 16:27~ 1.50e9 0 0 0 0 0
5 5 1500971226. 4 20170725 16:27~ 1.50e9 0 0 0 0 0
6 6 1500971226. 5 20170725 16:27~ 1.50e9 0 0 0 0 0
7 7 1500971228. 6 20170725 16:27~ 1.50e9 0 0 0 0 0
8 8 1500971228. 7 20170725 16:27~ 1.50e9 0 0 0 0 0
9 9 1500971230. 8 20170725 16:27~ 1.50e9 0 0 0 0 0
10 10 1500971230. 9 20170725 16:27~ 1.50e9 0 0 0 0 0
# ... with 350 more rows
也就是没有计算,但是从网上查了半天资料,没得到有用的信息,唯一一个也只是说 read_excel
在导入暑假前会计算单元格内的公式:
stackoverflow 的一个问题的解答
示例数据放在了百度网盘:
示例 excel 文件
麻烦各位给点思路或者其他方式导入数据的方案,谢谢