【发布时间】:2018-09-03 11:53:01
【问题描述】:
我在尝试更改列中数据元素的名称时收到错误消息。这是我正在使用的数据框的结构。
'data.frame': 2070 obs. of 7 variables:
$ Period: Factor w/ 188 levels "1 v 1","10 v 10",..: 158 158 158 158 158 158 158 158 158 158 ...
$ Dist : num 7548 7421 9891 8769 10575 ...
$ HIR : num 2676 2286 3299 2455 3465 ...
$ V6 : num 66.2 18.5 81 40 275.1 ...
$ Date : Factor w/ 107 levels "1/3/17","1/4/17",..: 38 38 38 38 38 38 38 38 38 38 ...
$ Type : Factor w/ 28 levels "Captain's Run",..: 5 5 5 5 5 5 5 5 5 5 ...
$ Day : Factor w/ 8 levels "Friday","Monday",..: 1 1 1 1 1 1 1 1 1 1 ...
#> Error: <text>:1:22: unexpected symbol
#> 1: 'data.frame': 2070 obs.
#> ^
```
我希望将db$Type 中的值Main Session 更改为Main Training,这样我就可以将此数据框与我正在使用的另一个数据框相匹配。我正在使用下面的代码来尝试这样做。
class(db$Type)
db$Type <- as.character(db$Type)
db$Type["Main Session"] = "Main Training"
当我尝试运行这段代码时收到此错误消息。
db$Type["Main Session"] = "Main Training"
Error in `$<-.data.frame`(`*tmp*`, Type, value = c("Main Session", "Main Session", :
replacement has 2071 rows, data has 2070
#> Error: <text>:2:7: unexpected 'in'
#> 1: db$Type["Main Session"] = "Main Training"
#> 2: Error in
#> ^
对于 R 来说相对较新,我的代码中是否缺少可以解决此问题的任何内容?任何建议将不胜感激。谢谢。
【问题讨论】:
-
感谢您尝试的详细错误消息和代码。如果您从数据中抽取一小部分样本并使用
dput()生成一些代码,这样其他人可以简单地将其粘贴到他们的控制台中并重现您的数据,这将非常有帮助。 see here 同时也许你可以试试db$Type[db$Type == "Main Session"] = "Main Training" -
感谢您的帮助,@Dean。
-
不用担心@B.Horsley。我希望这能解决问题。如果您想了解更多详细信息,我会扩展我的评论作为答案。
标签: r