全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2163 6
2013-04-15
比如说,我在写一个函数,然后最后我想得到的object=list(A=A,B=B,C=C,D=D,E=E).假设通过函数得到了变量var然后,因为B太长,所以在输出var的时候不想让B输出出来,只有在输出var$B的时候才输出B。什么函数具有这个功能?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-4-15 11:22:38
把你的object定义成一个新的class
然后写个print函数
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-4-15 23:06:20
ntsean 发表于 2013-4-15 11:22
把你的object定义成一个新的class
然后写个print函数
我可以集成到函数里吗?写print的话,每个结果输出都得用print(变量,输出方式),效率有点低啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-4-16 00:45:37
Laplace_Yin 发表于 2013-4-15 23:06
我可以集成到函数里吗?写print的话,每个结果输出都得用print(变量,输出方式),效率有点低啊
举个例子

myfunction <- function(x) {
        x1 <- rnorm(10)
        x2 <- rnorm(100)
        x3 <- rnorm(1000)
        x4 <- rnorm(10000)
            y <- list(x1=x1, x2=x2, x3=x3, x4=x4)
        class(y) <- "myobject"
        return(y)
}

print.myobject <- function(x) {
        len <- sapply(x, length)
        print(x[len < 200])
}

x <- myfunction(1)
x
names(x)

这里 x 是你的返回object,里面有不同长度, 在函数里面把你的返回list定义成一个新的object
然后对这个object定义一个print 函数,只对list里面长度<200的print
这样每次你函数反回的值, 打印出来的时候自动只打印<200的部分
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-4-16 09:18:44
帮顶
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-4-16 16:33:24
学习了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群