用python读取r语言数据框中的所有值

你用type(a)看下a是什么数据类型,如是字符串型,用re正则提取p值:

a="""data:mod$y,fitted(mod)
X-squared=1.966e-23,df = 0, p-value < 2.2e-16"""
import re 
p=re.search('p-value\s*(.*)',a).group(0)
print(p)

 

转换成字典后取值,用这句试试:

 

pv=dict(zip(a.names, map(list,list(a))))['p-value']
print(pv)

再对取出的值进行处理,用decimal,Decimal(pv)

x=2.2e-16

from decimal import Decimal

print(Decimal(x))

通过调用R代码运行的结果中p-value不是固定值而是一个不等式表达式,用dict,list等方法解析出来全部为0,要想获得它的表达式,只有将结果从ListVector转换为str,用正则解析出p-value式子。

import re

print(re.search(r'p-value\s*(.*?)\s*.*', str(a)).group(0))

#p-value < 2.2e-16

p-value是固定值的获取示例:

import rpy2.robjects as robj
x = robj.IntVector([115778, 171235, 1])
ya = robj.IntVector([31920, 49327, 0])
yb = robj.IntVector([83858, 121908, 1])
cor_test = robj.r['cor.test']
res = cor_test(x, ya)
print(res.r_repr())  # R way
print(f'p-value={res[2].r_repr()}')  # python way

 

您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

===