gpt4 book ai didi

python - 列操作 R

转载 作者:太空宇宙 更新时间:2023-11-04 00:15:28 24 4
gpt4 key购买 nike

我对使用 R 还很陌生,我希望有人能给我指出正确的方法。我有一个 tibble 形式的数据集,我需要遍历每一行。在每一行中,我必须检查 3 组列。即,如果其中一列 value=0,我必须删除所有三列并评估接下来的 3 列。

data_set <- as.data.frame(matrix(nrow=2))
data_set$Basket1<- c(45,35)
data_set$Type1 <- c("Normal","Premium")
data_set$Amount1 <- c(4,5)

data_set$Basket2 <- c(4,98)
data_set$Type2 <- c("Normal","Normal")
data_set$Amount2 <- c(0,4)

#when Type is "Premium" I want to remove the values for
#Basket1,Type1,Amount1
#and shift the next 3 cells to the left

最佳答案

请根据您添加的新示例在最后查看我的更新。

#I have a data set in the form of a tibble
data_set <- as.data.frame(matrix(nrow=8))
data_set$column1_set1 <- c(1,1,1,1,1,1,1,1)
data_set$column2_set1 <- c(1,1,1,1,0,1,1,1)
data_set$column3_set1 <- c(1,1,1,1,1,1,1,1)

data_set$column1_set2 <- c(1,1,1,1,1,1,1,1)
data_set$column2_set2 <- c(1,1,1,1,1,1,1,1)
data_set$column3_set2 <- c(1,1,1,1,1,1,1,1)
data_set$V1 <- NULL

data_set <- as.tibble(data_set)

# In each row I have to check columns in sets of 3.
# i.e if one of the columns value=0 I have to delete all three columns
# and evaluate the next 3 columns.

你可以这样做:

cn               <- colnames(data_set)

for(i in seq(1,length(cn),3)){
if(any(colSums(data_set[,i:(i+2)]) < nrow(data_set))){
data_set <- data_set[,!colnames(data_set) %in% cn[i:(i+2)]]

} else{
next
}
}

在新示例中,我们有一些非数字列。我们唯一要做的改变是首先检查它们是否为数字。

cn               <- colnames(data_set)

for(i in seq(1,length(cn),3)){

cn_tmp <- cn[i:(i+2)]
cn_tmp <- ifelse(class(data_set[,colnames(data_set) %in% cn_tmp])=="numeric",
cn_tmp, cn_tmp[!cn_tmp==cn_tmp[i]])
cn_tmp <- ifelse(class(data_set[,colnames(data_set) %in% cn_tmp])=="numeric",
cn_tmp, cn_tmp[!cn_tmp==cn_tmp[i+1]])
cn_tmp <- ifelse(class(data_set[,colnames(data_set) %in% cn_tmp])=="numeric",
cn_tmp, cn_tmp[!cn_tmp==cn_tmp[i+2]])

if(any(colSums(data_set[,colnames(data_set) %in% cn_tmp]) < nrow(data_set))){
data_set <- data_set[,!colnames(data_set) %in% cn[i:(i+2)]]

} else{
next
}
}

关于python - 列操作 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51145058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com