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_Dataframe_Replace_String Substitution - Fatal编程技术网

R 用另一个字符替换数据帧中的字符

R 用另一个字符替换数据帧中的字符,r,dataframe,replace,string-substitution,R,Dataframe,Replace,String Substitution,我想将数据帧中的字符F改为X。 请看下面 df <- data.frame(N=c(1,2,3,4,5,6),CAT=c('A','B','C','D','E','F')) df Result: N CAT 1 1 A 2 2 B 3 3 C 4 4 D 5 5 E 6 6 F 我已经运行了这段代码,但它不起作用 df$CAT[df$CAT == 'F'] <- 'X' Error in

我想将数据帧中的字符F改为X。 请看下面

df <- data.frame(N=c(1,2,3,4,5,6),CAT=c('A','B','C','D','E','F'))
df

Result:
      N CAT
    1 1   A
    2 2   B
    3 3   C
    4 4   D
    5 5   E
    6 6   F
我已经运行了这段代码,但它不起作用

    df$CAT[df$CAT == 'F'] <- 'X'

Error in `$<-.data.frame`(`*tmp*`, code, value = character(0)) : 
  replacement has 0 rows, data has 6

这段代码似乎适用于我通过csv导入的其他数据。有没有一个原因可以解释为什么它不能与我创建的这个特定数据帧一起工作?非常感谢您的帮助。

您可以使用dplyr的重新编码功能

df <- data.frame(N=c(1,2,3,4,5,6),CAT=c('A','B','C','D','E','F'))

df <- df %>% 
  mutate(CAT = recode(CAT, 'F'= 'X'))

df

您可以使用dplyr的重新编码功能

df <- data.frame(N=c(1,2,3,4,5,6),CAT=c('A','B','C','D','E','F'))

df <- df %>% 
  mutate(CAT = recode(CAT, 'F'= 'X'))

df
这是众所周知的错误。对于那些在R4.0之后阅读它的人来说,这不再是一个问题,但在2020年之前的许多年里,用户都在努力记住data.frame和as.data.frame,因为它会自动将所有字符串强制为factors

然后发生的情况是,您试图将新级别引入因子,而这不是在R中需要做的。如果创建因子不是有意的,您可以修改数据帧创建代码

df这是众所周知的stringsAsFactors=FALSE。对于那些在R4.0之后阅读它的人来说,这不再是一个问题,但在2020年之前的许多年里,用户都在努力记住data.frame和as.data.frame,因为它会自动将所有字符串强制为factors

然后发生的情况是,您试图将新级别引入因子,而这不是在R中需要做的。如果创建因子不是有意的,您可以修改数据帧创建代码


df虽然对我有效,但请检查是否有适用于我的“CAT”的领先/落后空间。您确定在复制/粘贴共享的代码时会发生错误吗?@akrun-有时我在运行代码,但没有按应有的方式执行操作。这是因为我看到了你以前解决问题的方法。那家伙很高兴,但当我试着自己操作它时,它不起作用。我需要重新安装R吗?R会变得腐败或过时吗?我最近加载了很多包,这会影响R吗?我关闭会话时不会保存会话。如果您正在保存有关global env的会话,它可能会污染envIt为我工作的环境,但请检查是否有适用于我的“CAT”的领先/落后空间。您确定在复制/粘贴共享的代码时会发生错误吗?@akrun-有时我在运行代码,但没有按应有的方式执行操作。这是因为我看到了你以前解决问题的方法。那家伙很高兴,但当我试着自己操作它时,它不起作用。我需要重新安装R吗?R会变得腐败或过时吗?我最近加载了很多包,这会影响R吗?我关闭会话时不会保存会话。如果您正在保存有关全球环境的会话,它可能会污染环境。谢谢@dmi3kno。我记得这是一个让我在过去推迟使用R的问题。我将下载最新的R。它成功了。谢谢@dmi3kno。我记得这是一个让我在过去推迟使用R的问题。我会下载最新的R。