基于r中同一行中其他元素的值更改数据帧值
我想根据同一行中的其他元素是否为某个值来更改数据帧行中某个元素的值 我有以下形式的数据框:基于r中同一行中其他元素的值更改数据帧值,r,apply,lapply,R,Apply,Lapply,我想根据同一行中的其他元素是否为某个值来更改数据帧行中某个元素的值 我有以下形式的数据框: p_id year Id number1 number2 result <dbl> <chr> <dbl> <dbl> <dbl> <dbl> 1 1 1968 1 1
p_id year Id number1 number2 result
<dbl> <chr> <dbl> <dbl> <dbl> <dbl>
1 1 1968 1 1 0 NA
2 1 1969 1 1 10 NA
3 1 1970 81 9 7 NA
4 1 1971 0 0 0 NA
5 1 1972 0 0 10 NA
6 1 1973 0 0 0 NA
7 1 1974 1 1 10 NA
p_id年份id number1 number2结果
111968 1110北美
211969 1110北美
311970 81 97NA
411971年0月0日NA
511972 010 NA
6197300NA
711974 1110北美
当Id=1,number1=1,number2=10时,我想在结果列中写一个1,否则写一个0
所以它应该是这样的:
p_id year Id number1 number2 result
<dbl> <chr> <dbl> <dbl> <dbl> <dbl>
1 1 1968 1 1 0 0
2 1 1969 1 1 10 1
3 1 1970 81 9 7 0
4 1 1971 0 0 0 0
5 1 1972 0 0 10 0
6 1 1973 0 0 0 0
7 1 1974 1 1 10 1
p_id年份id number1 number2结果
1 1 1968 1 1 0 0
2 1 1969 1 1 10 1
3 1 1970 81 9 7 0
4 1 1971 0 0 0 0
5 1 1972 0 0 10 0
6 1 1973 0 0 0 0
7 1 1974 1 1 10 1
我想应该有办法用lappy()来解决这个问题
很抱歉,如果这是一个转载,我无法找到一个解决方案,目前为止
谢谢 假设您试图更改的数据帧被称为
data
,下面的代码行应该会达到您想要的结果
data$result < -ifelse(data$Id = 1 & data$number1 = 1 & data$number2 = 10, 1, 0)
data$result<-ifelse(data$Id=1&data$number1=1&data$number2=10,1,0)
我希望这有帮助 假设您试图更改的数据帧被称为
data
,下面的代码行应该会达到您想要的结果
data$result < -ifelse(data$Id = 1 & data$number1 = 1 & data$number2 = 10, 1, 0)
data$result<-ifelse(data$Id=1&data$number1=1&data$number2=10,1,0)
我希望这有帮助 假设您的
数据。帧
称为d1
:
d1[["result"]] <- ifelse(d1[["Id"]] == 1L & d1[["numer1"]] == 1L & d1[["number2"]] == 10L, 1L, 0L)
d1[[“结果”]假设您的数据。帧
称为d1
:
d1[["result"]] <- ifelse(d1[["Id"]] == 1L & d1[["numer1"]] == 1L & d1[["number2"]] == 10L, 1L, 0L)
d1[[“结果”]没有ifelse的另一个选项
data$result <- with(data, +(Id == 1 & number1 == 1& number2 == 10))
data$result没有ifelse的另一个选项
data$result <- with(data, +(Id == 1 & number1 == 1& number2 == 10))
data$result