Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据单列dplyr数据表中的条件创建新变量_R_Dplyr_Data.table_Data Manipulation - Fatal编程技术网

根据单列dplyr数据表中的条件创建新变量

根据单列dplyr数据表中的条件创建新变量,r,dplyr,data.table,data-manipulation,R,Dplyr,Data.table,Data Manipulation,样本数据: Group <- c("a", "a", "a", "b", "b", "b", "c", "c", "c") value_1 <- c(1.10, 2.5, 1.7, 0.99, 1.50, 1.65, 2.5, 2.5, 1.5) value_2 <- c(0.03, 1.3, 3.5, 0.02, 4.3, 1.2, 1.4, 1.4, 3.7) new_variable_1 <- c(1,0,1, 1,1,0, 0,0,1) df &l

样本数据:

Group <- c("a", "a", "a", "b", "b", "b", "c", "c", "c")    
value_1 <- c(1.10, 2.5, 1.7, 0.99, 1.50, 1.65, 2.5, 2.5, 1.5)
value_2 <- c(0.03, 1.3, 3.5, 0.02, 4.3, 1.2, 1.4, 1.4, 3.7)
new_variable_1 <- c(1,0,1, 1,1,0, 0,0,1)    
df <- data.frame(Group, value_1, value_2, new_variable_1)

组我们可以试试。我使用了以“New”开头的名称,以便更容易理解

解决方案1(感谢@Gregor):

库(dplyr)
df%>%
分组依据(分组)%>%
变异(新的变量=ifelse(值=1%)
分组依据(分组)%>%

mutate(New_variable_1=ifelse(value_1)你指的是
数据表
还是
数据表
?请阅读以更好地表述问题。复制和粘贴所需的输出更容易。它在视觉上更“吸引人”,或者更容易理解(在我看来).谢谢Nelson。我需要处理所有组,而不仅仅是a组。您的代码仅适用于“a”组但不是针对其他组。你没有说其他组会发生什么,所以我假设他们取最大值
value\u 1
@JonDongennew\u variable\u 1是正确的输出。很抱歉不清楚。@NelsonGon我现在明白了,之所以使用
1.7
,是因为它是
value\u 1
max在同一行中的值(值_2)
对于组“a”
(这就是OP所说的“对应”的意思)类似地,对于组“b”,1.5是因为它在第5行,对于组“b”,它有最大值。我编辑了这个问题——我认为它更清楚。对于
max
,你不需要
ifelse
,它总是
value\u 2
的最大值。我认为类似于
新变量\u 1=ifelse(value\u 1
library(dplyr)


 df %>% 
  group_by(Group) %>%  
  mutate(New_variable_1 = ifelse(value_1 <= value_1[which.max(value_2)], 1, 0))
df %>% 
  group_by(Group) %>%  
  mutate(New_variable_1 = ifelse(value_1 <= value_1[which.max(value_2)], 1, 0),
         NewVar1=value_1[which.max(value_2)]*1.1)