Arrays 从数组到数据帧获取数据

Arrays 从数组到数据帧获取数据,arrays,r,dataframe,Arrays,R,Dataframe,我有两个数据集,第一个是数据帧 df1 <- data.frame(user=c(1:10), h01=c(3,3,6,8,9,10,4,1,2,5), h12=c(5,5,3,4,1,2,8,8,9,10),a=numeric(10)) 行表示手机天线id,列表示时间段,array1中的值表示在该时间段有多少人连接到天线。因此,array1[1,1]将打印在00:00和1:00之间连接到天线1的人数,array1[2,2]将打印在1:00和2:00之间连接到天线2的人数,依此类推 我要

我有两个数据集,第一个是数据帧

df1 <- data.frame(user=c(1:10), h01=c(3,3,6,8,9,10,4,1,2,5), h12=c(5,5,3,4,1,2,8,8,9,10),a=numeric(10))
行表示手机天线id,列表示时间段,
array1
中的值表示在该时间段有多少人连接到天线。因此,
array1[1,1]
将打印在00:00和1:00之间连接到天线1的人数,
array1[2,2]
将打印在1:00和2:00之间连接到天线2的人数,依此类推

我要做的是为
df1
中的每个
用户
array1
中获取在同一时间段内连接到相同天线的总人数,并将值放入
a列中

例如,第一个
用户
在00:00和1:00AM之间连接到天线3,在1:00AM和2:00AM之间连接到天线5,因此
a
中的值应该是
array1[3,1]
加上
array1[5,2]

我用了一个for循环来做这个

aux1 <- df1[,2]
aux2 <- df1[,3]
for(i in 1:length(df1$user)){
  df1[i,4] <- sum(array1[aux1[i],1],array1[aux2[i],2])
}
这个循环工作并给出正确的值,问题是两个数据集(
df1
array1
)非常大
df1
有超过20000个用户和24个时间段,
array1
有超过1300个天线,更不用说这些数据对应于一个社会经济级别的用户,我总共有5个,因此简化代码是强制性的

如果有人能给我展示一种不同的方法,我会很高兴,特别是如果它没有for循环的话。

试试这种方法:

df1$a <- array1[df1$h01,1] + array1[df1$h12,2]
df1$a尝试以下方法:

df1$a <- array1[df1$h01,1] + array1[df1$h12,2]

df1$a将此概念扩展为函数式方法,这样您就不必写出24条语句-
vars将此概念扩展为函数式方法,这样您就不必写出24条语句-
vars
df1$a <- array1[df1$h01,1] + array1[df1$h12,2]