我的问题是一个非常基本的问题,我是R和编程新手。我的数据框RESULT
有两列Max
,Min
和500行。我只是想找出Max
和Min
之间的差异,并将值放在第三列Difference
中。我尝试了代码:
select Max, Min, Max-Min as Difference from RESULT.
但我得到了
错误:“选择最大”中的意外符号。
我也尝试过:
Difference<-c(RESULT$Max-RESULT$Min)
我得到了:
警告讯息
在Ops.factor中(RESULT $ Max,RESULT $ Min): - 对因素没有意义
结果:
Max Min
1 NaN NaN
2 25 NaN
3 NaN NaN
4 NaN NaN
5 NaN NaN
6 25.6 23.1
我想在NaN
列中显示X
或Y
或Difference
中的任何其他变量,只要NaN
中的任何一个Max
}或Min
。输出应该是:
Max Min Difference
1 NaN NaN NaN
2 25 NaN NaN
3 NaN NaN NaN
4 NaN 34 NaN
5 NaN NaN NaN
6 25.6 23.1 2.5
答案 0 :(得分:11)
如果df
是您的data.frame,df$V3 <- df$V1 - df$V2
应添加名为V3
的新列,这是列V1
和V2
之间的差异。< / p>
您的错误消息显示列是因素。您可以通过df$V1 <- as.numeric(as.character(df$V1))
和V2
答案 1 :(得分:2)
您可以使用以下代码生成所需的输出:
# Please import data as df.csv with given 2 columns name and respective data
setwd("D:\\Vishnu Jayswal\\Data_Science")
read.csv("df.csv")
View(df)
di <- ifelse(is.nan(df$Max) ==TRUE | is.nan(df$Min) ==TRUE,NaN,df$Max-df$Min)
di
df_final <- data.frame(df,di)
df_final
答案 2 :(得分:1)
您还可以尝试在R数据帧上执行SQL选择的sqldf
包。
RESULT <- sqldf("select MAX, MIN, (MAX - MIN) AS Difference from RESULT")
通过这种方式,您将拥有3列MAX
,MIN
&amp; RESULT
。