楼主: kkykim
23732 7

[问答] R报错Error in as.data.frame.default(x[[i]], optional = TRUE) : [推广有奖]

  • 0关注
  • 1粉丝

高中生

40%

还不是VIP/贵宾

-

威望
0
论坛币
19 个
通用积分
0.6000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
271 点
帖子
14
精华
0
在线时间
26 小时
注册时间
2018-12-17
最后登录
2022-12-5

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
最近在做多样性分析的时候,代码总是报错,错误为Error in as.data.frame.default(x[[i]], optional = TRUE) :
  cannot coerce class ‘"function"’ to a data.frame,但是之前是可以运行的,数据换了很多格式还是不行,所以请各位大佬指点,到底是啥原因,多谢大佬!
代码如下:
setwd("D:/RDATA")
otu <- read.csv('7samplespearman.csv', row.names = 1, sep = '\t', stringsAsFactors = FALSE, check.names = FALSE)
otu <- t(otu)
library("vegan")
library("picante")
alpha <- function(x, tree = NULL, base = exp(1)) {
  est <- estimateR(x)
  Richness <- est[1, ]
  Chao1 <- est[2, ]
  ACE <- est[4, ]
  Shannon <- diversity(x, index = 'shannon', base = base)
  Simpson <- diversity(x, index = 'simpson')   
  Pielou <- Shannon / log(Richness, base)
  goods_coverage <- 1 - rowSums(x == 1) / rowSums(x)
  result <- data.frame(Richness, Shannon, Simpson, Pielou, Chao1, ACE, goods_coverage)
  if (!is.null(tree)) {
    PD_whole_tree <- pd(x, tree, include.root = FALSE)[1]
    names(PD_whole_tree) <- 'PD_whole_tree'
    result <- cbind(result, PD_whole_tree)}
  result}
write.csv(alpha, 'D:/RDATA/otu_alpha.csv', quote = FALSE)
Error in as.data.frame.default(x[[i]], optional = TRUE) :
  cannot coerce class ‘"function"’ to a data.frame

二维码

扫码加我 拉你入群

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

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

关键词:Optional Default Option fault Frame

沙发
Whig 在职认证  发表于 2019-11-26 09:52:02 来自手机 |只看作者 |坛友微信交流群
kkykim 发表于 2019-11-26 09:23
最近在做多样性分析的时候,代码总是报错,错误为Error in as.data.frame.default(x[], optional = TRUE) : ...
你的alpha是函数,不是data.frame
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

藤椅
kkykim 发表于 2019-11-26 16:37:47 |只看作者 |坛友微信交流群
Whig 发表于 2019-11-26 09:52
你的alpha是函数,不是data.frame
这个错误应该是说这行代码 alpha <- function(x, tree = NULL, base = exp(1)) 中的function不是data.frame吧?

使用道具

板凳
Whig 在职认证  发表于 2019-11-26 19:50:53 |只看作者 |坛友微信交流群
write.csv的第一个参数是data.frame,不能是函数名,alpha是函数名

使用道具

报纸
kkykim 发表于 2019-11-27 17:05:51 |只看作者 |坛友微信交流群
Whig 发表于 2019-11-26 19:50
write.csv的第一个参数是data.frame,不能是函数名,alpha是函数名
解决了,多谢大佬

使用道具

地板
ljt5 发表于 2021-3-4 12:51:28 |只看作者 |坛友微信交流群
kkykim 发表于 2019-11-27 17:05
解决了,多谢大佬
请问一下楼主 怎么解决的那。是如何将结果导出的?

使用道具

7
ghfbjk 发表于 2021-4-16 19:03:36 |只看作者 |坛友微信交流群
kkykim 发表于 2019-11-27 17:05
解决了,多谢大佬
请问是怎么解决的

使用道具

8
光と影のロマン 学生认证  发表于 2022-9-21 00:22:35 |只看作者 |坛友微信交流群
和大家说下解决方案,有2种可能
1就是写data.frame的时候,里面的变量名打错了
2.就是你是用的变量名可能是R的默认函数

以上两点确认了基本可以解决

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-24 06:01