如何为for循环从多个数据帧中子集数据
我想计算我拥有的产品列表中的每周价格变化,但我甚至在计算价值时遇到了问题如何为for循环从多个数据帧中子集数据,r,for-loop,R,For Loop,我想计算我拥有的产品列表中的每周价格变化,但我甚至在计算价值时遇到了问题df1是我感兴趣的产品和日期列表,df2是所有产品的价格历史记录。我想在df1中添加一个新列,其价格变化百分比为1周(从df1中的日期算起1周) 数据帧有数千种产品和日期。我尝试使用for loop创建一个新的向量,该向量仅包含df1中当天的价格,但获得替换项的长度为零错误 price <- rep(NA,nrow(df1)) for(i in 1:nrow(df1)){ price[i] <- df2[
df1
是我感兴趣的产品和日期列表,df2
是所有产品的价格历史记录。我想在df1中添加一个新列,其价格变化百分比为1周(从df1中的日期算起1周)
数据帧有数千种产品和日期。我尝试使用for loop
创建一个新的向量,该向量仅包含df1
中当天的价格,但获得替换项的长度为零
错误
price <- rep(NA,nrow(df1))
for(i in 1:nrow(df1)){
price[i] <- df2[which(df2$Date==df1$Date[i]),df1$Item[i]]
}
price这种方法可能存在一些问题。第一个问题可能是比较时间。检查两个表中的时间格式是否确实相同,并且它们是否按照预期进行比较
其次,您不考虑返回NULL
。试试这个修改
for(i in 1:nrow(df1)){
value <- df2[which(df2$Date==df1$Date[i]), df1$Item[i]]
if(!is.null(value)) price[i] <- value
}
for(i in 1:nrow(df1)){
价值
for(i in 1:nrow(df1)){
value <- df2[which(df2$Date==df1$Date[i]), df1$Item[i]]
if(!is.null(value)) price[i] <- value
}