在 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
我面临以下问题。
我有一个大型数据集,我使用 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