R 如何加速此代码删除某些行?
我有一个R 如何加速此代码删除某些行?,r,performance,loops,dataframe,R,Performance,Loops,Dataframe,我有一个data.frame,我想删除第5列条目等于零的行 data.frame如下所示: Column1 Column2 Column3 Column4 Column5 Column6 1 A 3 2 1 1 2 D 2 2 4 1 3 D 4 1 0 2 4 E 4
data.frame
,我想删除第5列条目等于零的行
data.frame
如下所示:
Column1 Column2 Column3 Column4 Column5 Column6
1 A 3 2 1 1
2 D 2 2 4 1
3 D 4 1 0 2
4 E 4 1 0 2
5 F 2 1 A 3
因此,在这种情况下,应删除第3列和第4列。我的数据帧被称为
dataframe,目前我使用以下代码:
for(i in 1:length(dataframe[,1])){
if (dataframe[i,5]==0) {
dataframe2<-dataframe[-i,]
}
}
for(i in 1:length(数据帧[,1]){
if(数据帧[i,5]==0){
dataframe2您应该阅读介绍手册以了解基本的子集设置
df <- df[df$Column5 != 0, ]
## Column1 Column2 Column3 Column4 Column5 Column6
## 1 1 A 3 2 1 1
## 2 2 D 2 2 4 1
## 5 5 F 2 1 A 3
df您应该阅读一本介绍性手册来理解基本的子集设置
df <- df[df$Column5 != 0, ]
## Column1 Column2 Column3 Column4 Column5 Column6
## 1 1 A 3 2 1 1
## 2 2 D 2 2 4 1
## 5 5 F 2 1 A 3
df您应该阅读一本介绍性手册来理解基本的子集设置
df <- df[df$Column5 != 0, ]
## Column1 Column2 Column3 Column4 Column5 Column6
## 1 1 A 3 2 1 1
## 2 2 D 2 2 4 1
## 5 5 F 2 1 A 3
df您应该阅读一本介绍性手册来理解基本的子集设置
df <- df[df$Column5 != 0, ]
## Column1 Column2 Column3 Column4 Column5 Column6
## 1 1 A 3 2 1 1
## 2 2 D 2 2 4 1
## 5 5 F 2 1 A 3
df我认为:
dataframe2 <- dataframe[dataframe[,5]!=0,]
一般而言:
- 按列名编制索引比按数字编制索引更可靠,通常可读性更高(尽管在您的示例中列名没有意义)
- 使用
[[]]
或[,]
进行索引比使用$
进行索引更稳健、更通用(例如,您可以使用动态构造的变量名或[[[]]
中的数字索引,并且只能使用$
的精确名称
子集
是可读性最强的,但在某些上下文中不太可靠
对于您所描述的大小问题,所有这些方法在速度方面或多或少都是瞬时的/无法区分的。我认为:
dataframe2 <- dataframe[dataframe[,5]!=0,]
一般而言:
- 按列名编制索引比按数字编制索引更可靠,通常可读性更高(尽管在您的示例中列名没有意义)
- 使用
[[]]
或[,]
进行索引比使用$
进行索引更稳健、更通用(例如,您可以使用动态构造的变量名或[[[]]
中的数字索引,并且只能使用$
的精确名称
子集
是可读性最强的,但在某些上下文中不太可靠
对于您所描述的大小问题,所有这些方法在速度方面或多或少都是瞬时的/无法区分的。我认为:
dataframe2 <- dataframe[dataframe[,5]!=0,]
一般而言:
- 按列名编制索引比按数字编制索引更可靠,通常可读性更高(尽管在您的示例中列名没有意义)
- 使用
[[]]
或[,]
进行索引比使用$
进行索引更稳健、更通用(例如,您可以使用动态构造的变量名或[[[]]
中的数字索引,并且只能使用$
的精确名称
子集
是可读性最强的,但在某些上下文中不太可靠
对于您所描述的大小问题,所有这些方法在速度方面或多或少都是瞬时的/无法区分的。我认为:
dataframe2 <- dataframe[dataframe[,5]!=0,]
一般而言:
- 按列名编制索引比按数字编制索引更可靠,通常可读性更高(尽管在您的示例中列名没有意义)
- 使用
[[]]
或[,]
进行索引比使用$
进行索引更稳健、更通用(例如,您可以使用动态构造的变量名或[[[]]
中的数字索引,并且只能使用$
的精确名称
子集
是可读性最强的,但在某些上下文中不太可靠
对于您描述的大小问题,所有这些方法在速度方面或多或少都是瞬时的/无法区分的。一个小的打字错误,它认为是dataframe[dataframe[,5]!=0,]一个小的打字错误,它认为是dataframe[dataframe[,5]!=0,]一个小的打字错误,它认为是dataframe[dataframe[,5]!=0,]一个小的输入错误,它认为是dataframe[dataframe[,5]!=0,]