首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将R中小于18的值替换为列的平均值

将R中小于18的值替换为列的平均值
EN

Stack Overflow用户
提问于 2019-10-23 05:07:01
回答 1查看 197关注 0票数 0

我正在尝试清理和训练Dodger Loop数据,对于任何小于18的记录值,使用19的平均每5分钟的汽车数量。我已经删除了任何丢失的数据,但似乎可以弄清楚如何取-1到17的值并将它们切换到19。

代码语言:javascript
复制
#Set working directory
setwd("xxx")
#import Traffic Data dodger.csv rename it to traffic
Traffic <- read.csv(xxx header=FALSE)
View(Traffic)
#import doger game data dodger.events rename it to games
Games <- read.csv("xxx header=FALSE)
View(Games)
#open class and ggplot pacakages
library(class)
library(tm)
library(data.table)
library(ggplot2)
library(caret)
#View dat structure
str(Traffic)
#Find the median of traffic to use for missing data
summary(Traffic)
#
str(Games)
summary(Games)
#Remove uneeded columns and Name ID Columns
Games <- Games[-6]
Games <- Games[-5]
View(Games)
names(Games)[1]<-"Date"
names(Games)[2]<-"Start Time"
names(Games)[3]<-"End"
names(Games)[4]<-"Attendance"
names(Games)[2]<-"Start"
View(Games)
#Name ID Colums in Traffic
View(Traffic)
names(Traffic)[1]<-"Date and Time"
names(Traffic)[2]<-"Amount"
View(Traffic)

#Find the mean of Traffic
mean(Traffic$Amount)
[1] NA
#Mean is undefined missing data, replace with mean
mean(Traffic$Amount, na.rm = T)
                   [1] 18.95073
#Averacars per 5 min is 18.9, round to 19
#Replace missing (-1) data with average car per 5 min
Avg_Traffic <- ave(Traffic$Amount, FUN = function(x) 
mean(x, na.rm = T))


Traffic$Amount <- ifelse(is.na(Traffic$Amount), 
Avg_Traffic, Traffic$Amount)

##Traffic$Amount[x <18]?????
EN

回答 1

Stack Overflow用户

发布于 2019-10-23 05:53:02

将全部更改为-1或19以下的值

流量$金额<- ifelse(流量$金额< 18,18,流量$金额)

检查数据以进行校正= SAT

打印(流量)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58512325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档