问题描述
我有一个包含二进制(0/1)项目的大数据框。但是,有些列包含3。我想将某些列的NA更改为3,并将更改应用于原始数据帧。
我尝试了一些解决方案,但它们要么应用于整个数据集,要么仅使用change列创建一个新的数据集。
数据集的标题如下:
X1 X2 X3 X4 X5 X6
S1 1 45 0 1 1 3
S2 2 12 1 0 3 0
S3 3 3 0 0 1 1
S4 4 11 1 0 3 3
S5 5 13 0 1 1 3
S6 6 20 1 0 1 1
所需的输出:
X1 X2 X3 X4 X5 X6
S1 1 45 0 1 1 NA
S2 2 12 1 0 NA 0
S3 3 3 0 0 1 1
S4 4 11 1 0 NA NA
S5 5 13 0 1 1 NA
S6 6 20 1 0 1 1
谢谢:)
解决方法
尝试使用dplyr
来across()
:
library(dplyr)
#Code
df <- df %>% rowwise() %>% mutate(across(X5:X6,~ifelse(.==3,NA,.)))
输出:
# A tibble: 6 x 6
# Rowwise:
X1 X2 X3 X4 X5 X6
<int> <int> <int> <int> <int> <int>
1 1 45 0 1 1 NA
2 2 12 1 0 NA 0
3 3 3 0 0 1 1
4 4 11 1 0 NA NA
5 5 13 0 1 1 NA
6 6 20 1 0 1 1
,
您可以使用const routes: Routes = [
{
path: '',component: DashboardComponent,children: [
{
path: '',component: DashboardMainComponent
},{
path: 'barcode-scanner',component: BarcodeScannerComponent
},{
path: '**',redirectTo: ''
}
]
},];
进行此操作。
这里是数据的友好dplyr
。
dput
,
在base R
中,我们可以做到
data[3:6][data[3:6] == 3] <- NA
-输出
data
# X1 X2 X3 X4 X5 X6
#S1 1 45 0 1 1 NA
#S2 2 12 1 0 NA 0
#S3 3 3 0 0 1 1
#S4 4 11 1 0 NA NA
#S5 5 13 0 1 1 NA
#S6 6 20 1 0 1 1
注意:使用base R
还将保留行名
数据
data <- structure(list(X1 = c(1,2,3,4,5,6),X2 = c(45,12,11,13,20),X3 = c(0,1,1),X4 = c(1,0),X5 = c(1,X6 = c(3,1)),class = "data.frame",row.names = c("S1","S2","S3","S4","S5","S6"))