账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    java将R执行结果展示出来
    29
    0

    在RStudio中执行R语句,得到结果如下:
    结果一:

    > eperson(economic)
    [[1]]
    [1] "主成份分析结果为"
    
    [[2]]
    Importance of components:
                              Comp.1    Comp.2    Comp.3     Comp.4    Comp.5      Comp.6 Comp.7
    Standard deviation     2.1124391 1.1491308 0.9331551 0.50448791 0.2699638 0.137595030      0
    Proportion of Variance 0.6374856 0.1886431 0.1243969 0.03635829 0.0104115 0.002704627      0
    Cumulative Proportion  0.6374856 0.8261287 0.9505256 0.98688388 0.9972954 1.000000000      1
    
    Loadings:
       Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7
    x1 -0.446  0.127  0.138  0.431  0.599  0.241 -0.404
    x2 -0.467                0.268                0.837
    x3 -0.445  0.146 -0.243        -0.671  0.451 -0.260
    x4 -0.377 -0.377  0.168 -0.763  0.236  0.223       
    x5 -0.257 -0.297 -0.819         0.162 -0.382       
    x6 -0.418  0.280  0.337 -0.137 -0.196 -0.730 -0.208
    x7         0.808 -0.319 -0.375  0.265         0.150
    
    [[3]]
    [1] "综合得分和经济人口承载力为"
    
    [[4]]
      年份      指数  承载人口
    1 2006 2.2589596 178.29831
    2 2007 1.9662692 155.19644
    3 2008 1.6925468 133.59169
    4 2009 0.2778931  21.93393
    5 2010 0.8682956  68.53405
    6 2011 1.8017713 142.21272
    7 2012 2.9307567 231.32285

    现在我在java里调用R语句,代码如下:

        xp=c.eval("eperson(economic)");//java调用R语句
        System.out.println("----eperson(economic).asList()-----");
        for(int i=0;i<xp.asInteger();i++){//试图循环打印R语句执行结果
           System.out.println(xp.asStrings()[i]);
     }

    java调用R语句得到的结果如下:
    结果二:

    ----eperson(economic).asList()-----
    org.rosuda.REngine.REXPString@2420badf[1]
    org.rosuda.REngine.REXPGenericVector@60cc9900+[9]named
    org.rosuda.REngine.REXPString@185100a6[1]
    org.rosuda.REngine.REXPGenericVector@6e019ec2+[3]named

    结果二并不是我想要的,我想在结果二里得到结果一,并显示在网页上,请问该如何解决?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 心已涼兮 普通会员 1楼

      在Java中,你可以使用JDBC(Java Database Connectivity)来执行数据库查询,并将查询结果以某种形式展示出来。以下是一个简单的例子,展示了如何将R执行的结果显示出来:

      ```java import java.sql.*;

      public class Main { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = "root"; String password = "password";

          try {
              Connection conn = DriverManager.getConnection(url, username, password);
              Statement stmt = conn.createStatement();
              ResultSet rs = stmt.executeQuery("SELECT * FROM mytable");
      
              while (rs.next()) {
                  int id = rs.getInt("id");
                  String name = rs.getString("name");
                  String age = rs.getString("age");
      
                  // 将查询结果转换为字符串,并打印
                  System.out.println("ID: " + id);
                  System.out.println("Name: " + name);
                  System.out.println("Age: " + age);
              }
      
              rs.close();
              stmt.close();
              conn.close();
          } catch (SQLException e) {
              e.printStackTrace();
          }
      }
      

      } ```

      在这个例子中,我们首先建立了一个到数据库的连接。然后,我们创建了一个Statement对象来执行SQL查询。我们使用这个Statement对象的executeQuery方法来执行SQL查询。

      在while循环中,我们获取查询结果集的next方法,这样我们就可以遍历查询结果集。对于查询结果中的每一行,我们获取它的id,name和age,并将它们打印出来。

      注意,我们使用了ResultSet对象的close方法来关闭ResultSet。这个方法会自动关闭连接,但是如果你手动调用close方法,那么你需要确保在完成操作后关闭所有的连接资源。

      最后,我们关闭了Statement和ResultSet对象,以释放它们占用的资源。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部