Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R数据帧中用数字替换字符值?_R_Replace - Fatal编程技术网

如何在R数据帧中用数字替换字符值?

如何在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

我有一个数据集,其中包含两个正确/不正确值的变量很少 我想用1替换所有正确的,用零替换不正确的

变量的数据类型为字符。我尝试了gsub并更换了不起作用的部件。有人能帮我吗


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