首页 > 解决方案 > 在R中动态读取excel数据

问题描述

我的主目录中有一个 excel 文件。我使用下面的代码读取 excel 文件

df <- read_excel("new_sd.xlsx", sheet = "Sheet1")

我想检查我们是否可以动态读取excel文件,类似于我们动态查询sql表的方式例如

我的excel有以下数据

Col1  Col2
1           A
2           A
3           B

在读取上述文件 ( df <- read_excel("new_sd.xlsx", sheet = "Sheet1")) 时,我们只能导入 Col2 为 "A" 的数据吗) 。所以输出将是

df 
Col1  Col2
1           A
2           A

标签: rshiny

解决方案


如果您想在读取时过滤数据,而不是在您可以使用read.csv.sqlfrom sqldfwhich 接受 SQL 查询进行过滤后过滤,但它仅适用于 csv 数据并且无法读取 excel 文件。

如果您可以将 excel 转换为 csv,则可以使用它。

library(sqldf)

#Write the csv
#readr::write_csv(mtcars, 'mtcars.csv')

read.csv.sql('mtcars.csv', sql = 'select * from file where cyl = 6')

#   mpg cyl  disp  hp drat    wt  qsec vs am gear carb
#1 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
#2 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
#3 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
#4 18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
#5 19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
#6 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
#7 19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6

推荐阅读