我有一个数据框,我想从中提取一些满足条件的行。我已经能够成功获取这些行的索引,但是当我尝试将这些行追加到我创建的空数据框时,我会遇到各种各样的错误(甚至更有趣,只有一个空数据框,没有错误)。>
datosA <- read_excel(archivo, col_names = TRUE, sheet = "Sheet1")
datosB <- read_excel(archivo, col_names = TRUE, sheet = "Sheet1")
AvsB <- data.frame()
for (x in datosA$'m/z') {
if (!(x %in% datosB$'m/z')) {
index <- match(x, datosA$'m/z')
rbind(AvsB, datosA[index,])
}
}
不幸的是,这没有任何作用 我将衷心感谢您的帮助。 谢谢!
head(datosA)
# A tibble: 6 x 16
Row Index `Peak Name` `m/z` `Ret. Time` `HC 1` `HC 2` `QC 1` `FM 1` `HC 3` `QC 2` `FM 2` `QC 3` `FM 3` `QC 4` `FM 4`
<dbl> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 1 288.3/7.8 (80) 288. 7.82 82639 133150. 115280 32179 45842 116433 37358 138583 32425 217890 37055
2 2 2 288.3/8.0 (82) 288. 7.96 85895. 140309 119273 15051 63766 132999 12131 146485 13557 245226 14266
3 3 3 301.1/1.3 (92) 301. 1.28 141133. 161141. 180196 22494 168913 185736 26525 172954 29359 156029 25718
4 4 4 313.3/15.7 (99) 313. 15.7 92327. 116870 90781 816 84477. 126151 801 126316 971 186423 990
5 5 5 316.3/11.9 (104) 316. 11.9 12232. 8196. 10279 660 15646 15529 679 20439 657 17514 576
6 6 6 316.3/8.5 (105) 316. 8.47 98679 111867. 105794 62869 74714. 111100 77540 153424 80128 159846 76565
答案 0 :(得分:1)
您需要在每个循环中将rbind的结果存储回AvsB:
SELECT
gc.IDGastosComunes,
v.IDPropiedad,
v.Depto,
v.NombreDueno,
(SELECT u2.IDCategoria
FROM usuarios_tipos u2
WHERE u2.IDUsuario = v.IDDueno AND
u2.IDTipo = 10) AS gc.IDCategoria, <-- This return an int -> 1, 2 or 3
CASE
WHEN IDCategoria = 1 THEN 'Convenio'
WHEN IDCategoria = 2 THEN 'Plus'
WHEN IDCategoria = 3 THEN 'Preferente'
WHEN IDCategoria = 4 THEN 'Premium'
WHEN IDCategoria = 5 THEN 'La Serena'
ELSE ''
END AS Categoria, <-- This has to show the string
gc.monto,
gc.FechaEmisionPago AS Periodo
FROM
gastos_comunes gc
JOIN vcartera_propiedades v ON (v.IDPropiedad=gc.IDPropiedad)
WHERE v.IDGrupo = 1