如果你在 R 中遇到以下错误:

Error in `$<-.data.frame`(`*tmp*`, 调查日期, value = numeric(0)) : 
  替换数据里有0行,但数据有3170

这通常意味着在转换'调查日期'列为日期格式时出现了问题。错误信息指出你尝试替换的数据中没有行,但你的数据框实际上有 3170 行数据。

原因

这个问题可能由以下几个原因引起:

  • 调查日期列的数据存在问题: 可能包含无效日期值、空值或非日期格式的数据。
  • 调查日期列的列名拼写或大小写错误: 确保列名与代码中的拼写和大小写一致。

解决方法

  1. 检查调查日期列的数据: 使用 print() 函数打印'调查日期'列的数据,检查是否存在无效数据。
  2. 确保列名正确: 仔细检查列名拼写和大小写,确保与代码中的名称匹配。
  3. 转换调查日期列: 使用 as.Date() 函数将'调查日期'列转换为日期格式。

示例代码

library(dplyr)

# 读取五个表格
F0 <- read.csv('F0.csv')
F1 <- read.csv('F1.csv')
F2 <- read.csv('F2.csv')
F3 <- read.csv('F3.csv')
F4 <- read.csv('F4.csv')

# 检查调查日期列的数据
print(F0$调查日期)
print(F1$调查日期)
print(F2$调查日期)
print(F3$调查日期)
print(F4$调查日期)

# 转换调查日期列为日期格式
F0$调查日期 <- as.Date(F0$调查日期, origin = '1970-01-01')
F1$调查日期 <- as.Date(F1$调查日期, origin = '1970-01-01')
F2$调查日期 <- as.Date(F2$调查日期, origin = '1970-01-01')
F3$调查日期 <- as.Date(F3$调查日期, origin = '1970-01-01')
F4$调查日期 <- as.Date(F4$调查日期, origin = '1970-01-01')

# 打印调查日期列
print(F0$调查日期)
print(F1$调查日期)
print(F2$调查日期)
print(F3$调查日期)
print(F4$调查日期)

说明

  • 此代码示例演示了如何检查调查日期列的数据和转换日期格式。请根据您的实际数据进行修改。
  • origin = '1970-01-01' 指定日期格式的起始点,根据您的数据进行调整。

如果问题仍然存在,请提供更多代码和数据细节,以便我更好地帮助您解决问题。

R 错误: Error in `$<-.data.frame`(`*tmp*`, 调查日期, value = numeric(0)) : 替换数据里有0行,但数据有3170 - 解决方法

原文地址: http://www.cveoy.top/t/topic/pFO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录