将 class 从字符更改为整数但保留其中的所有数据
Changing class from character to integer but retaining all the datas inside
q7 <- dbGetQuery(conn,
"SELECT TailNum AS TailNum, AVG(ontime.DepDelay) AS avg_delay, ontime.Year AS Year, planes.Year AS yearmade
FROM planes JOIN ontime USING(tailnum)
其中 ontime.Cancelled = 0 AND planes.Year != '' AND planes.Year != 'None' AND ontime.Diverted = 0 AND ontime.DepDelay > 0
按尾号分组
按 avg_delay")
排序
我试过的代码:
q7 <- data.frame(
yearmade = q7.yearmade, stringsAsFactors = FALSE)
^ 数据框
嗨!基本上我想创建一个新列,其中 Year 将减去 yearmade 并放入一个新列中,但在我这样做之前,我发现我从另一个 table 中绘制到此数据框中的数据显示as character(yearmade),有什么方法可以改变它但保留里面的原始数据吗?
先用as.numeric()
把yearmade
改成数值变量。然后你可以简单地计算 Year
和 yearmade
.
之间的差异
我相信这对你有用。
set.seed(1)
Year <- 2000:2022
yearmade <- sample(c('2000', '1999', '1998'), length(Year), replace = TRUE)
TailNum <- sample(c('N3738B', 'N3737C', 'N37342'), length(Year), replace = TRUE)
avg_delay <- 1:length(Year)
q7 <- data.frame(TailNum, avg_delay, Year, yearmade)
# compute difference and add to data frame
q7$year_diff <- q7$Year - as.numeric(q7$yearmade)
这保留了原始数据,但引入了一个新列year_diff
。
> str(q7)
'data.frame': 23 obs. of 5 variables:
$ TailNum : chr "N3738B" "N3738B" "N3737C" "N3738B" ...
$ avg_delay: int 1 2 3 4 5 6 7 8 9 10 ...
$ Year : int 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 ...
$ yearmade : chr "2000" "1998" "2000" "1999" ...
$ year_diff: num 0 3 2 4 4 7 8 8 9 11 ...
q7 <- dbGetQuery(conn, "SELECT TailNum AS TailNum, AVG(ontime.DepDelay) AS avg_delay, ontime.Year AS Year, planes.Year AS yearmade FROM planes JOIN ontime USING(tailnum) 其中 ontime.Cancelled = 0 AND planes.Year != '' AND planes.Year != 'None' AND ontime.Diverted = 0 AND ontime.DepDelay > 0 按尾号分组 按 avg_delay")
排序我试过的代码: q7 <- data.frame( yearmade = q7.yearmade, stringsAsFactors = FALSE)
^ 数据框
嗨!基本上我想创建一个新列,其中 Year 将减去 yearmade 并放入一个新列中,但在我这样做之前,我发现我从另一个 table 中绘制到此数据框中的数据显示as character(yearmade),有什么方法可以改变它但保留里面的原始数据吗?
先用as.numeric()
把yearmade
改成数值变量。然后你可以简单地计算 Year
和 yearmade
.
我相信这对你有用。
set.seed(1)
Year <- 2000:2022
yearmade <- sample(c('2000', '1999', '1998'), length(Year), replace = TRUE)
TailNum <- sample(c('N3738B', 'N3737C', 'N37342'), length(Year), replace = TRUE)
avg_delay <- 1:length(Year)
q7 <- data.frame(TailNum, avg_delay, Year, yearmade)
# compute difference and add to data frame
q7$year_diff <- q7$Year - as.numeric(q7$yearmade)
这保留了原始数据,但引入了一个新列year_diff
。
> str(q7)
'data.frame': 23 obs. of 5 variables:
$ TailNum : chr "N3738B" "N3738B" "N3737C" "N3738B" ...
$ avg_delay: int 1 2 3 4 5 6 7 8 9 10 ...
$ Year : int 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 ...
$ yearmade : chr "2000" "1998" "2000" "1999" ...
$ year_diff: num 0 3 2 4 4 7 8 8 9 11 ...