data_avg里的数据都成了NA
时间: 2023-08-08 15:05:55 浏览: 50
如果`data_avg`里的数据都成了NA,可能是数据中含有缺失值导致的。你可以在使用`summarise()`函数时添加`na.rm = TRUE`参数,将缺失值忽略后再进行求平均操作。修改后的代码如下:
```
library(dplyr)
data_avg <- data %>%
mutate(time = as.POSIXct(V1, format="%H:%M:%S"),
time_min = as.POSIXct(trunc(time, "min"), format="%Y-%m-%d %H:%M:%S")) %>%
group_by(time_min) %>%
summarise(avg_data = mean(V2, na.rm = TRUE))
```
这里的`na.rm`参数即为忽略缺失值的意思。在使用`mean()`函数时,将该参数设置为`TRUE`即可。修改后再次运行代码,看看是否可以得到正确的结果。
相关问题
#丢弃票价为空的记录 delet_na <- data[-which(is.na(data$SUM_YR_1) |is.na(data$SUM_YR_2)),] #丢弃票价为0、平均折扣率不为0、总飞行公里数大于0的记录 index <- ((delet_na$SUM_YR_1 == 0 & delet_deletdata = delet_na[-which(index == 1),] #保存清洗后的数据 cleanedfile= deletdata这个代码哪里出错
这个代码有一些语法错误和逻辑错误。可能是因为你在复制代码时发生了一些错误。以下是我找到的错误和修正建议:
1. 在 `delet_na` 变量的最后一个括号中,多了一个 `)`,需要删除。
2. 在 `delet_na` 变量的最后一个括号之后,缺少一个 `|`。
3. 在 `delet_na` 变量和 `deletdata` 变量之间的赋值号 `=` 应该是一个 `-`,因为你想要删除记录。
4. 在 `deletdata` 变量的赋值语句中,变量名不一致,应该改为 `delet_na`。
5. 在 `deletdata` 变量的赋值语句中,多了一个 `delet`,需要删除。
6. 在 `cleanedfile` 变量的赋值语句中,变量名不一致,应该改为 `deletdata`。
修正后的代码如下:
```
#丢弃票价为空的记录
delet_na <- data[-which(is.na(data$SUM_YR_1) | is.na(data$SUM_YR_2)),]
#丢弃票价为0、平均折扣率不为0、总飞行公里数大于0的记录
index <- ((delet_na$SUM_YR_1 == 0 & delet_na$SUM_YR_2 == 0) | delet_na$AVG_DISCOUNT != 0 | delet_na$SEG_KM_SUM == 0)
deletdata <- delet_na[-which(index == TRUE),]
#保存清洗后的数据
cleanedfile <- deletdata
```
希望这可以帮助你解决问题。
data <- read.csv("D:/air_data.csv")delet_na=data[-which(is.na(data$SUM_YR_1) |iscol=c(10,2,23,11,17,29)#去掉日期型变量 outdata<-deletdata[,col] head(outdata,3).na(data$SUM_YR_2)),] index<-((delet_na$SUM_YR_1 ==0 & delet_na$SUM_YR_2 == 0) *(delet_na$avg_discount !=0) *(delet_na$SEG_KM_SUM>0)) deletdata<-delet_na[-which(index == 1),] cleanedfile=deletdata str(cleanedfile)outdata$FFP_TIER<-as.Date(outdata$FFP_DATE) outdata$LOAD_TIME<-as.Date(outdata$LOAD_TIME) #构造时间间隔格式 library(lubridate) interval(data$FFP_DATE,data$LOAD_TIME) #以月为单位计算时长,输出时间为间隔 L<-time_length(interval, 'month') L<-round(L, 2) R<-data$LAST_TO_END F<-data$FLIGHT_COUNT M<-data$SEG_KM_SUM C<-data$avg_discount #整合数据 airdata<-data.frame(L,R,F,M,C) head(airdata) summary(airdata)Error in as.duration(x) : as.duration is not defined for class 'function'
在你的代码中,有一个语法错误。在第一行读取数据之后,你没有关闭括号。正确的代码应该是:
```
data <- read.csv("D:/air_data.csv")
```
在你的代码中,有一个变量名错误。在行中,你把`iscol`写成了`iscol=`。正确的代码应该是:
```
delet_na=data[-which(is.na(data$SUM_YR_1) | is.na(data$SUM_YR_2)), c(10,2,23,11,17,29)]
```
在你的代码中,有一个函数使用错误。在行中,你没有给`interval()`函数提供正确的参数。正确的代码应该是:
```
interval <- interval(outdata$FFP_DATE, outdata$LOAD_TIME)
```
在你的代码中,有一个变量名错误。在行中,你把`deletdata`写成了`delet_na`。正确的代码应该是:
```
cleanedfile <- deletdata
```
最后,在你的代码中,有一个语法错误。在行中,你没有给`summary()`函数提供正确的参数。正确的代码应该是:
```
summary(airdata$L, airdata$R, airdata$F, airdata$M, airdata$C)
```