【发布时间】:2015-09-24 05:18:10
【问题描述】:
我有一个算法,我正在尝试在 R 中实现它:
object :matrix(V)
if V[1,1] > 1 then select row.name[1,1] else
if V[1,2] > 1 then select ...
我试过这样写,但效果不好。
v
Comp 1 Comp 2
Coliformes 2.34387737 1.7070448
DBO 0.03067654 0.6291745
OD 0.13726407 0.1972502
NO3 0.07250923 0.8988905
NO2 0.97224048 0.9616424
NH4 1.61238684 1.6422081
PO4 0.36423502 0.3688056
pH 0.98055981 1.0106563
Temp 0.10056242 0.2551496
Turb 0.76414630 0.5732596
PT 0.49795469 1.2924590
f<-subset(v>1)
> f
Comp 1 Comp 2
Coliformes TRUE TRUE
DBO FALSE FALSE
OD FALSE FALSE
NO3 FALSE FALSE
NO2 FALSE FALSE
NH4 TRUE TRUE
PO4 FALSE FALSE
pH FALSE TRUE
Temp FALSE FALSE
Turb FALSE FALSE
PT FALSE TRUE
也许我的问题很容易解决,但我对 R 没有经验。
【问题讨论】:
-
您可以查看输出
f,有一行带有一个TRUE。你想保留这些行吗?如果您只需要提取 TRUE 值,则在每一列中,list中的输出会更好 -
我不清楚你在追求什么,但也许
subset(v, Comp1 > 1 | Comp2 > 1)(假设你更改了名称“Comp 1”和“Comp 2”以删除空格,这只是一个麻烦) . -
@Frank 如果你没有删除空格,
subset(v, `Comp 1` > 1 | `Comp 2` > 1) -
现在,我有一个带有“0”而不是数字1的行的行名,该值并不重要现在,我只想要一种自动方式来保留行名(大肠菌群、DBO、pH 等)
标签: r if-statement subset