在 r 中拆分数据

Splitting data in r

我面临以下问题。 我有一个大型数据集,我使用 split 使数据更易于理解。我最终得到了大约 250 次拆分。因此,每个拆分被命名为 "binary code + original name"。有没有一种方法可以在不r自动添加二进制代码的情况下编写新数据集?

下面是一个可重现的例子:

df_NA <- data.frame(Size= c(800, 850, NA, 1200, NA),
Price =     c(900, NA, 1300, 1100, 1200),
Location =  c(NA, 'Downtown', 'Uptown', NA, 'Lakeview'),
Rooms =     c(1, 2, NA, 4, NA),
Bathrooms = c(1, 2, 1, 2, 2),
Rent =      c('Yes', 'Yes', 'No','Yes', 'No'))

下面我将数据拆分(最终分为三组),将它们写入我的Splits文件夹,然后删除空列并将它们写入我的Updated Splits文件夹。

# Splitting
index <- apply(is.na(df_NA)*1, 1,paste, collapse = "")
s <- split(df_NA, index)
# Writing splits into csv files and removing empty columns
for (i in 1:length(s))
{
write.csv(s[i], file = paste0("Splits/", i, "splits.csv"),
row.names=FALSE, na = "")
sdf <- data.frame(s[i])
updated_split <- sdf[,colSums(is.na(sdf))<nrow(sdf)]
write.csv(updated_split, file = paste0("Updated Splits/","updated", i, "split.csv"), row.names=FALSE)
}

现在,当我从三个文件中随机打开一个文件时,我得到了这个:

data <- read.csv("Updated Splits/updated1split.csv")
data
  X001000.Size X001000.Price X001000.Rooms X001000.Bathrooms X001000.Rent
1          800           900             1                 1          Yes
2         1200          1100             4                 2          Yes

我试过 col.names=F 但它没有任何改变。知道我该如何解决吗?也许有一种方法可以在我写入文件后删除所有二进制名称?

df_NA <- data.frame(Size = c(800, 850, NA, 1200, NA),
                    Price = c(900, NA, 1300, 1100, 1200),
                    Location = c(NA, 'Downtown', 'Uptown', NA, 'Lakeview'),
                    Rooms = c(1, 2, NA, 4, NA),
                    Bathrooms = c(1, 2, 1, 2, 2),
                    Rent = c('Yes', 'Yes', 'No','Yes', 'No'))

index <- apply(is.na(df_NA)*1, 1,paste, collapse = "")
s <- split(df_NA, index)
i <- 1

# subset using [i] 
sdf <- data.frame(s[i])
updated_split <- sdf[,colSums(is.na(sdf))<nrow(sdf)]
updated_split 
#   X001000.Size X001000.Price X001000.Rooms X001000.Bathrooms X001000.Rent
# 1          800           900             1                 1          Yes
# 4         1200          1100             4                 2          Yes

# subset using [[i]]
sdf <- data.frame(s[[i]])
updated_split <- sdf[,colSums(is.na(sdf))<nrow(sdf)]
updated_split
#   Size Price Rooms Bathrooms Rent
# 1  800   900     1         1  Yes
# 4 1200  1100     4         2  Yes