使用for循环的索引更新子集数据框中的值

时间:2019-04-08 10:28:58

标签: r dataframe

我的用例涉及到我需要过滤某个条件的数据帧。获得子集数据帧后,我想一次遍历子集一行,并检查某些条件并更新该特定行中的值。

这是我的实现方式:

> sales_data[sales_data$month == 1 & sales_data$dept_name == 1,]
   emp_name month dept_name revenue    status n_points x_partition y_partition x y
1       Sam     1         1     100       Low        9           3           3 0 0
7   Kenneth     1         1     500 Very High        9           3           3 0 0
11 Jonathan     1         1     500       Low        9           3           3 0 0
12      Sam     1         1     100       Low        9           3           3 0 0
18  Kenneth     1         1     500 Very High        9           3           3 0 0
22 Jonathan     1         1     500       Low        9           3           3 0 0
23      Sam     1         1     100       Low        9           3           3 0 0
29  Kenneth     1         1     500 Very High        9           3           3 0 0
33 Jonathan     1         1     500       Low        9           3           3 0 0

现在,我的子集数据帧有9行。因此,一个for循环:

for(i in 1:nrow(sales_data[sales_data$month == 1 & sales_data$dept_name == 1, ] )) {
#Here I want to update the value of column named x with i
sales_data[sales_data$month == month_item & sales_data$dept_name == dept_item, ][i]$x <- x_vector_data[i] ##NOT CORRECT APPROACH
}

1 个答案:

答案 0 :(得分:1)

为什么循环,也许:

sales_data[sales_data$month == 1 & sales_data$dept_name == 1, "x"] <- x_vector_data