2
这是一个新手问题,但我在理解数组中列表的应用函数时遇到了一些问题。适用于阵列列表的函数
这是我拥有的数据和我所试图做的一个例子:
> dataset1=array(data1,dim=c(2,10,5))
> dataset2=array(data2,dim=c(2,10,5))
> dataset3=array(data2,dim=c(2,10,5))
> datasets=list(data1=dataset1,data2=dataset2,data3=dataset3)
> str(datasets)
List of 3
$ data1: num [1:2, 1:10, 1:5] 0.101 1.192 0.154 0.911 1.889 ...
$ data2: num [1:2, 1:10, 1:5] 2.84 1.63 1.78 1.24 1.09 ...
$ data3: num [1:2, 1:10, 1:5] 2.84 1.63 1.78 1.24 1.09 ...
我想要替换所有的值由0
for (d in 1:3){
for (n in 1:2){
for (i in 1:10){
datasets[[d]][n,i,][datasets[[d]][n,i,]<=1.5]=0
}
}
}
娄1.5我不知道可不可以我使用其中一个应用函数?或者对于这种类型的数据集(数组列表),还是应该保留循环方法并忘记其他选项?
我不是“大”的粉丝“;”使用R,但它的作品。所以我只需使用“ifelse”添加此解决方案:lapply(数据集,函数(x)ifelse(x <1.5,0,x))。 – dickoa 2012-01-06 09:46:02
你为什么不喜欢用“;”。是否需要特定的资源? – 2012-01-06 11:07:54
这里只是语法,用分号我可以把它全部放在一行上,它只是懒惰 - 更好地将匿名函数放在更好的布局中,但不知何故意味着它们不应该是匿名的(对我来说)。 ifelse是一个很好的整理。 – mdsumner 2012-01-06 13:40:55