如何编写语句,以及该语句是否计算r中的两列

如何编写语句,以及该语句是否计算r中的两列,r,R,如果Account中的值为空,我需要将Account中的值替换为UserID中的值 范例 My.data Account UserID Message NULL 123456 Pass NULL 234567 Fail 3456789 adamO Pass 4567890 EveOO Fail 清理数据 My.Data2 Account Use

如果Account中的值为空,我需要将Account中的值替换为UserID中的值

范例

My.data
Account         UserID     Message
NULL            123456     Pass
NULL            234567     Fail
3456789         adamO      Pass
4567890         EveOO      Fail
清理数据

My.Data2
Account         UserID     Message
123456          123456     Pass
2345667         234567     Fail
3456789         adamO      Pass
4567890         EveOO      Fail

基本上,如果
My.Data$Account
null
,则放入
My.Data$UserID

假设您有“character”的“NULL”值而不是实际的“NULL”,我们在“Account”列中创建一个“NULL”值的逻辑索引,并使用该索引将“Account”值替换为“UserID”中的相应值

  indx <-  My.data$Account=='NULL'
  My.data$Account[indx] <- My.data$UserID[indx]
  My.data
  #  Account UserID Message
  #1  123456 123456    Pass
  #2  234567 234567    Fail
  #3 3456789  adamO    Pass
  #4 4567890  EveOO    Fail
我们将“data.frame”转换为“data.table”(
setDT(My.data)
),并为“NULL”的“Account”分配相应的“UserID”

数据
My.data假设您有“character”的“NULL”值而不是实际的“NULL”,我们在“Account”列中创建一个“NULL”值的逻辑索引,并使用该索引将“Account”值替换为“UserID”中的相应值

  indx <-  My.data$Account=='NULL'
  My.data$Account[indx] <- My.data$UserID[indx]
  My.data
  #  Account UserID Message
  #1  123456 123456    Pass
  #2  234567 234567    Fail
  #3 3456789  adamO    Pass
  #4 4567890  EveOO    Fail
我们将“data.frame”转换为“data.table”(
setDT(My.data)
),并为“NULL”的“Account”分配相应的“UserID”

数据
My.datadplyr版本:

require(dplyr)
my.data2 <- mutate(my.data,ifelse(Account== "NULL", UserID, Account))
require(dplyr)
my.data2dplyr版本:

require(dplyr)
my.data2 <- mutate(my.data,ifelse(Account== "NULL", UserID, Account))
require(dplyr)

my.data2我收到一条警告消息:data$AccountNumber[indx]@AllyKat您有一个
factor
列。如果你看我的数据,都是字符。对于因子列,除非为该列指定了该级别,否则替换值会更加困难。我会将这些列转换为“字符”,即。My.data[]有效,但如果我想保留4列中的1列作为数字,以备日后处理,该怎么办?@AllyKat抱歉,我没有收到你的评论。如果您需要原始数据集保持完整,
My.data1我收到一条警告消息:data$AccountNumber[indx]@AllyKat您有一个
factor
列。如果你看我的数据,都是字符。对于因子列,除非为该列指定了该级别,否则替换值会更加困难。我会将这些列转换为“字符”,即。My.data[]有效,但如果我想保留4列中的1列作为数字,以备日后处理,该怎么办?@AllyKat抱歉,我没有收到你的评论。如果需要原始数据集保持完整,
My.data1