Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的自定义属性传播_R_Vector_Attributes_Dataframe - Fatal编程技术网

R中的自定义属性传播

R中的自定义属性传播,r,vector,attributes,dataframe,R,Vector,Attributes,Dataframe,我刚刚开始学习R,对属性传播很好奇 我想用自定义值对向量进行注释(我假设属性是正确的方法?),这一点我可以相当容易地做到。(如果这是一个X-Y问题,请给出背景) 当我开始操作这些向量时,问题就开始了——我希望这些自定义注释能够传播,或者至少有一套定义良好的注释传播/丢失规则 我在这方面做了一些研究,其中包括特别针对子集函数的研究,但我想对其进行进一步的概括: 不传播值的函数的完整列表是什么 我怎么才能知道呢 有没有更好的方法来完成我正在做的事情 目标是应用这些注释,对数据调用任意(尽可能多的)R

我刚刚开始学习R,对属性传播很好奇

我想用自定义值对向量进行注释(我假设属性是正确的方法?),这一点我可以相当容易地做到。(如果这是一个X-Y问题,请给出背景)

当我开始操作这些向量时,问题就开始了——我希望这些自定义注释能够传播,或者至少有一套定义良好的注释传播/丢失规则

我在这方面做了一些研究,其中包括特别针对子集函数的研究,但我想对其进行进一步的概括:

  • 不传播值的函数的完整列表是什么
  • 我怎么才能知道呢
  • 有没有更好的方法来完成我正在做的事情
  • 目标是应用这些注释,对数据调用任意(尽可能多的)R函数,并确保属性得到维护。数据帧在这里也特别重要


    谢谢

    我认为您需要采用将“自定义值”设置为数据列的做法,而不是使用属性。将这称为X-Y问题并不特别具体,但它暗示了这样一个概念,即您有位置数字数据,并且希望按行注册字符数据。这正是数据帧的设计目的


    仅围绕向量包装
    c()
    就足以剥离其属性,因此类和属性相当脆弱。数据帧是一个列表,因此此建议实际上与flodel的建议并不相反。

    即使是简单的添加也会破坏属性。在下一个示例中,仅保留
    y
    的属性:

    x <- 1:5
    attr(x, "foo") <- letters[1:3]
    
    y <- 6:10
    attr(x, "foo") <- letters[4:6]
    
    x + y
    ## [1]  7  9 11 13 15
    ## attr(,"foo")
    ## [1] "d" "e" "f"
    

    然后你可以重载任何函数(现在是S3方法)来处理你的新类。

    关于3(可能),你可以使用一个列表:
    list(object=…,attr1=…,attr2=…)
    。谢谢,是的,在使用了这里的信息和我自己的实验之后,我决定使用一个数据框(具体为data.table)。很抱歉,我不能更新Voteso我告诉过你为什么会有问题,你基本上按照我的建议将值放在更持久的数据结构中,而不是存储在属性中,但是你“不能更新投票”。哦,好吧。我并不需要这些要点。抱歉——正如我在其他评论中所说,我没有足够的代表。确实是你的评论让我更好地研究了基本事实并获得了更好的理解,谢谢你谢谢你的回答——最后我决定使用data.table。然而,我将在另一个问题中进一步探讨一些问题。谢谢(对不起,我不能投票,没有足够的代表)
    model <- lm(Sepal.Length ~ Sepal.Width + Species, iris)
    unclass(model)