R 中的错误:二元运算符的非数字参数

问题描述 投票:0回答:0

我需要一些帮助来理解和修复我在执行命令时遇到的错误消息

View(combined_data)
。出现的错误信息是:

r 错误 4(vec_data(x) * TICS_PER_SECOND 中的错误:二元运算符的非数字参数)

在遇到此错误消息之前,我执行了以下代码以使用

ldply
将 CSV 文件合并到单个数据帧中。

library(plyr) # for the ldply function
library(here) # for the here function
library(readr) # for the read_csv function
mydir = here("folder", "subfolder")
myfiles = list.files(path=mydir, pattern="*.csv", full.names=TRUE)
combined_data = ldply(myfiles, read_csv, skip=5) # skipping 5 rows in each file

据我所知,这段代码工作正常(combined_data 的行数和列数正确)。当我运行命令

str(combined_data)
时,R 报告错误是由列 $ In Bed Time (class "hms" "difftime") 引起的。

我徒劳地试图纠正这个问题是将一些变量(数字作为字符导入,日期作为字符导入)到它们正确的类(分别将字符转换回数字和日期)。这没有达到预期的效果,并导致了进一步的问题。

combined_data[8:18] <- as.numeric(unlist(combined_data[8:18]))
combined_data[c(2,4,6)] <- format(as.Date(unlist(combined_data[c(2,4,6)]), format="%m/%d/%Y"), "%m/%d/%Y")
combined_data[c(3,5,7)] <- format(as.POSIXct(unlist(combined_data[c(3,5,7)]), format="%I:%M:%S %p"), "%I:%M:%S %p")

变量 2、4、6 是日期,格式为 8/20/2020 变量 3、5、7 是时间,格式为 12:35:00 AM。 在此之后,我可以执行命令

View(combined_data)
但我所有的时间变量(最初是类“hms”“difftime”)都更改为 NA。此外,虽然我的日期显示正确,但他们的班级没有更改为日期。

r datetime plyr posixct as.date
© www.soinside.com 2019 - 2024. All rights reserved.