8

我的问题是一个非常基本的问题,我是 R 和编程的新手。我有一个RESULT包含两列MaxMin500 行的数据框。我只想找到和之间的区别,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或列。输出应该是这样的:YDifferenceNaNMaxMin

    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
4

3 回答 3

13

如果df是您的 data.frame,df$V3 <- df$V1 - df$V2则应添加一个名为的新列V3,该列是列V1V2.

您的错误消息说这些列是因素。df$V1 <- as.numeric(as.character(df$V1))您可以通过执行类似的操作将它们转换为数字类V2

于 2013-11-07T14:51:20.130 回答
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
于 2016-04-07T20:45:13.733 回答
1

您还可以尝试sqldf在 R 数据帧上执行 SQL 选择的包。

RESULT <- sqldf("select MAX, MIN, (MAX - MIN) AS Difference from RESULT")

这样,您将拥有 3MAXMIN& RESULT

于 2016-12-16T11:50:32.620 回答