为什么我用了"subset"后,过滤出来的数据比应有的少?

Why after I use "subset", the filtered data is less than it should be?

我想在“Variete”栏下显示“Blancas”和“Sultana”。

为什么我使用“子集”后,过滤后的数据比应有的少?

图1为原始数据,

图2是预期的结果,

图3是我用下面的代码得到的结果:

df <- read_excel("R_NLE_FTSW.xlsx")
options(scipen=200)

BLANCAS<-subset(df, Variete==c("Blancas","Sultana"))
view(BLANCAS)

很明显BLANCAS的一些数据缺失了。 P.S。而如果在子sheet中试一试,最后的结果有时会是原来的5倍!

path = "R_NLE_FTSW.xlsx"
df <- map_dfr(excel_sheets(path), 
               ~ read_xlsx(path, sheet = 4)) 

我不明白为什么有时比预期结果多有时少。谁能帮我?非常感谢!

首先,虽然您提到您同时需要“Blancas”和“sultanas”,但您的预期结果只显示 Blancas!所以先说清楚。

此类数据来自 excel :

  1. 总是在导入后清理数据。检查unqiue值以查找是否有任何额外的空格等

  2. Trim 字符数据,确保日期字段正确且数字为数字(非字符)

  3. 现在对数据进行子集化:使用df%>%filter(Variete %in% c('Blancas','Sultana') -> 您可以修改 c() 向量以包含感兴趣的项目。 -> 如果您想随时随地清洁?

df%>%filter(trimws(Variete)) %in% c('Blancas','Sultana'))

和您的 sub-sheet 问题:我们甚至不知道那里有什么数据。如果相似则应用相同的逻辑。