上我有一个数据帧DF 该看起来像这样:优化ifelse一个大的数据帧
A B C
1 2 3
2 5 6
3 8 9
的代码下面的行添加新的列,并相应地填满数据。
df$Mean.Result1 <- ifelse(df[, "A"] > 0.05 & df[, "B"] > 0.05, "Equal", "")
我使用R 2与Splunk的,并[R在Splunk的不能够认识到,上述格式。
是否有权这样做:
df.$Mean.Result1 <- ifelse(df.$A > 0.05 & df$B > 0.05, "Equal", "")
怎样的两段代码有什么不同?它会影响计算速度吗?我的实际数据集大约有5亿行和400列。
如果你有5亿行,它会更有效,不管是记忆方式还是计算方式,都要做'df。$ Mean.Result1 < - ifelse(df。$ A> 0.05&df。$ B> 0.05,1L,0L),然后是df。$ Mean。结果1 < - 因子(df。$ Mean.Result1,levels = c(1L,0L),labels = c(“Equal”,“”)) '。您将大大减少表格的大小,并且涉及'df。$ Mean.Result1'的所有操作将会快得多_much_。尽可能避免字符串,R不能有效地处理它们。 –
'df [,“A”]'相当于'df $ A',而不是'df。$ A'。这两段代码是不同的,因为一个使用变量'df'和另一个'df.'。就计算成本而言,使用第一种或第二种形式是严格等价的。 –