使用R中的for循环重新编码数组列表变量中的每个元素

时间:2017-05-08 11:30:50

标签: arrays r list loops for-loop

我是R的新手,我一直坚持这一点。我在下面有一个数据集,其中我创建了一个名为'amountOfTxn_array'的新数组列表变量,它按顺序包含三个数值。这些是从1月到3月的交易量。我的目标是从这个数组列表中创建新的变量,迭代'amountOfTxn_array'中的每个数据元素。

> head(myData_05_Array)
Index   accountID   amountOfTxn_array
1:00    8887    c(36.44, 75.00,185.24)
2:00    13462   c(639.45,656.10,237.00)
3:00    47249   c(0,  24, 2012)
4:00    49528   c(1189.20,2326.26,1695.89)
5:00    57201   c(24.67, 0.00, 0.00)
6:00    57206   c(0.00, 661.98,2957.68)
  

STR(myData_05_Array)   类'data.table'和'data.frame':3176 obs。 4个变量:    $ accountID:int 8887 13462 47249 49528 57201 57206 58522 79073 80465 81032 ...    $ amountOfTxn_200501:num 36.4 639.5 0 1189.2 24.7 ......    $ amountOfTxn_200502:num 75 656 24 2326 0 ...    $ amountOfTxn_200503:num 185 237 2012 1696 0 ...    $ amountOfTxn_array:3176的列表

此外,下面提供了用于创建新变量的示例代码,其中如果数组中的值大于100且0,则我想标记1。当我运行示例代码时,我得到“错误:(列表)对象无法强制输入'double'错误。我可以请求解决此问题。我非常感谢任何回复。 谢谢!

> for(i in 1:3)
+ {  
+   if(myData_05_Array$amountOfTxn_array[i] > 100){
+     myData_05_Array$testArray[i] <- 1
+   }
+   else{
+     myData_05_Array$testArray[i] <- 0
+   }
+ }
  

错误:( list)对象无法强制输入'double'

我期待的是输出如下: amountOfTxn_testArray c(0,0,1) c(1,1,1) c(0,0,0) c(1,1,1) c(0,0,0) c(0,1,1)

0 个答案:

没有答案