将数据框拆分为相等的部分,并将每个部分存储为单独的数据框

时间:2017-09-21 16:49:30

标签: r data-manipulation

我有一个大型数据帧,我想将其拆分为多个相等部分的较小数据帧。

样本df:

df <- data.frame(x = 1:100, y = runif(100))

我有代码将它们分成相等的部分(比方说10个数据帧,每行10行)

x=split(df, (seq(nrow(df))-1) %/% 10) 

并将它们存储在列表x中,但我似乎无法弄清楚如何将x的每个部分转换为单独的数据帧。

我尝试使用lapply,但我的方法没有达到我想要的方式

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您想要list2env

list2env(setNames(x,paste0("df",1:10)),environment())
# df3
# x         y
# 21 21 0.4935413
# 22 22 0.1862176
# 23 23 0.8273733
# 24 24 0.6684667
# 25 25 0.7942399
# 26 26 0.1079436
# 27 27 0.7237109
# 28 28 0.4112744
# 29 29 0.8209463
# 30 30 0.6470602

答案 1 :(得分:1)

依靠更多基本功能,你可以做一个简单的循环:

from django.utils import timezone
from django.conf import settings
from django.contrib.auth.models import AbstractUser
from django.utils.translation import ugettext_lazy as _
from django.contrib.sessions.models import Session

class CustomUser(AbstractUser):


    addr1= models.CharField(max_length=20)
    addr2= models.CharField(max_length=20)
    city= models.CharField(max_length=20)
    state= models.CharField(max_length=20)
    country= models.CharField(max_length=20,choices=country_choices)
    pincode= models.IntegerField(default=0,blank=True,null=True)
    securityq= models.CharField(max_length=20)
    securitya= models.CharField(max_length=20)

class userresp(models.Model):

    uid=models.ForeignKey(settings.AUTH_USER_MODEL,blank=True,null=True)
    resp=models.CharField(max_length=20)
    datetime=models.DateTimeField(default=timezone.now)

    def __unicode__(self):
        return u"{} {}".format(self.uid,self.datetime)

    class Meta:
        db_table="userresp"

class UserSession(models.Model):
    user= models.ForeignKey(settings.AUTH_USER_MODEL)
    session=models.ForeignKey(Session)

至少对我而言,这是我所信任的,而我想阅读我使用的任何“新”功能的文档。