如何在R数据帧中用数字替换字符值?
我有一个数据集,其中包含两个正确/不正确值的变量很少 我想用1替换所有正确的,用零替换不正确的 变量的数据类型为字符。我尝试了gsub并更换了不起作用的部件。有人能帮我吗如何在R数据帧中用数字替换字符值?,r,replace,R,Replace,我有一个数据集,其中包含两个正确/不正确值的变量很少 我想用1替换所有正确的,用零替换不正确的 变量的数据类型为字符。我尝试了gsub并更换了不起作用的部件。有人能帮我吗 df[]将其转换为逻辑,并将逻辑转换为数字TRUE始终等于1,而FALSE0 a <- c('Correct', 'Incorrect', 'Correct') sapply(a=='Correct', as.numeric) [1] 1 0 1 a您可以将列转换为因子,然后再转换为数值,而无需指定条件 #Crea
df[]将其转换为逻辑,并将逻辑转换为数字TRUE
始终等于1,而FALSE
0
a <- c('Correct', 'Incorrect', 'Correct')
sapply(a=='Correct', as.numeric)
[1] 1 0 1
a您可以将列转换为因子,然后再转换为数值,而无需指定条件
#Create data frame
> df <- data.frame(a = c("correct", "correct", "correct"),
b = c("incorrect", "correct", "incorrect") )
> df
a b
1 correct incorrect
2 correct correct
3 correct incorrect
#Convert character columns to numeric using apply:
> df2 <- as.data.frame(apply(df,2,function(L){as.numeric(as.factor(L))}))
> df2
a b
1 1 2
2 1 1
3 1 2
#创建数据帧
>df-df
a b
1纠正错误
2正确的
3纠正错误
#使用“应用”将字符列转换为数字:
>df2 df2
a b
1 1 2
2 1 1
3 1 2
您是否尝试过ifelse
df <- data.frame(
x = c("correct", "correct", "correct", "incorrect", "incorrect", "incorrect"),
y = c("correct", "correct", "correct", "incorrect", "correct", "incorrect"),
z = c("correct", "incorrect", "correct", "correct", "incorrect", "correct")
)
a <- c('Correct', 'Incorrect', 'Correct')
sapply(a=='Correct', as.numeric)
[1] 1 0 1
df <- data.frame(a=c('Correct', 'Incorrect', 'Correct'), b=c('Correct', 'Incorrect', 'Incorrect'))
df
a b
1 Correct Correct
2 Incorrect Incorrect
3 Correct Incorrect
matrix(sapply(df=='Correct', as.numeric), ncol = ncol(df))
[,1] [,2]
[1,] 1 1
[2,] 0 0
[3,] 1 0
#Create data frame
> df <- data.frame(a = c("correct", "correct", "correct"),
b = c("incorrect", "correct", "incorrect") )
> df
a b
1 correct incorrect
2 correct correct
3 correct incorrect
#Convert character columns to numeric using apply:
> df2 <- as.data.frame(apply(df,2,function(L){as.numeric(as.factor(L))}))
> df2
a b
1 1 2
2 1 1
3 1 2