如何编写语句,以及该语句是否计算r中的两列
如果Account中的值为空,我需要将Account中的值替换为UserID中的值 范例如何编写语句,以及该语句是否计算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
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