比较数据框中的2列并在数据框中创建新列

时间:2016-04-18 10:37:16

标签: r if-statement spark-dataframe

我已经"合并了#34;来自2个数据帧的数据,&我比较了两列'回答' &安培; ' selected_answer'我得到的值是真实的和在下面的代码

中,在final_ans列中为false

dt $ final_ans< - dt $ correct_answer == dt $ selected_answer

但我想添加另一个专栏'得分'如果为true,则基于列angular.module('app', []).controller('controller', function($scope) { $scope.calculate = function() { return $scope.result = parseInt($scope.stroke) + 1; } }); 的值,然后想要在列分数中显示3,如果为false,则显示0。 以下是我所做的代码,但答案错误。对于所有行,它只显示0,如下所示。如何编辑代码以获得准确的值。

final_ans

2 个答案:

答案 0 :(得分:1)

你可以这样做:

dt <- data.frame(a=1:5, b=5:1) # here are your 2 'answer' columns
dt$test <- dt$a==dt$b # here is your test for correct answer
dt$score <- dt$test * 3 # here is the score you give for a 'TRUE' answer
dt

答案 1 :(得分:0)

将逻辑向量乘以3表示,将TRUE替换为3,将FALSE替换为0.即

rt$is_correct <- dt$correct_answer==dt$selected_answer
rt$is_correct * 3 

如果您的final_ans列不符合逻辑,而是字符,则需要先将其转换,然后再创建新列。

dt$final_ans <- as.logical(dt$final_ans) #to convert to logical
dt$score <- dt$final_ans * 3 #to create your new column
相关问题