有没有更好的方法来选择以某些东西开头的rownames? 防爆。
df k1 k2 p1 p2 l perda lP lucroVar C16-C12 6.02 12.12 5.35 0.48 4.87 -1.23 3.96 79.84 C47-C12 6.62 12.12 4.63 0.48 4.15 -1.35 3.07 75.45 C7-C12 7.02 12.12 4.30 0.48 3.82 -1.28 2.98 74.90 C21-C12 7.12 12.12 4.19 0.48 3.71 -1.29 2.88 74.20 C12-C13 12.12 13.12 0.48 0.24 0.24 -0.76 0.32 24.00 C12-C43 12.12 13.62 0.48 0.16 0.32 -1.18 0.27 21.33
*真实数据框有8000行 以下两个选项有效:
df[substr(rownames(df),1,3)=='C12',]
或
df[grep('^C12',rownames(df)),]
我想
df['C12*',]
k1 k2 p1 p2 l perda lP lucroVar
C12-C13 12.12 13.12 0.48 0.24 0.24 -0.76 0.32 24.00
C12-C43 12.12 13.62 0.48 0.16 0.32 -1.18 0.27 21.33
在SQL中有“喜欢'C12%'”。
答案 0 :(得分:2)
不是我建议这样做但是......
`[.data.frame` <- function(x, i, ...) {
base::`[.data.frame`(x, if (is.character(i)) grepl(i, rownames(x)) else i, ...)
}
letters[1]
# [1] "a"
mtcars[1, ]
# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
mtcars['M', ]
# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
# Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
# Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
# Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
# Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
# Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
# Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
# Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
# Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
# AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
# Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
并恢复正常
rm('[', '[.data.frame')
答案 1 :(得分:0)
为什么你不喜欢你的方法,你的意思是什么?更好的&#34;?更复杂的语法还是更快?
messengerService.Publish<GaEventMessage>(new GaEventMessage(this, "Event", "Publish Event", "Publish Event From First View Model", 123));
也可以这样做,但实际上更复杂,因为我认为你需要将rownames转换为显式变量
dplyr