<Data Visualization> 数据导入导出与基本处理 - R

以下是导入:
- txt 格式导入:

data<-read.table("C:\\Users\\Administrator\\Desktop\\myfile.txt",header=F)#TXT读入
  • CSV 格式导入:
data<-read.csv("C:\\Users\\Administrator\\Desktop\\myfile.csv")  #CSV数据读入
  • xlsx 格式导入
library("xlsx")
data<-read.xlsx("C:\\Users\\Administrator\\Desktop\\myfile.xlsx",sheetName="file",header=F,encoding='UTF-8')
  • 剪切板 直接复制(容易出错):
data <- read.table("clipboard", header = T, sep = '\t')#直接复制

以下是导出

  • csv:
write.table(mydata2, file ="C:\\Users\\Administrator\\Desktop\\newdata.csv", sep =",", row.names =FALSE)
  • txt
write.table(mydata2,file="C:\\Users\\Administrator\\Desktop\\newdata.txt" , sep =" ", row.names =FALSE,col.names =TRUE, quote =FALSE)

以下为数据连接

  • merge 的用法:
    • 语法:merge(x, y, by = , by.x = , by.y = , all = , all.x = , all.y = , sort = , suffixes = , incomparables = , ...)
    • 这里写图片描述
  • join函数 (plyr包)
    • 语法:join(x, y, by = NULL, type = "left", match = "all")
  • inner_join/full_join/left_join/right_join 函数 (dplyr包):
    • inner_join(x, y) :只包含同时出现在x,y表中的行
    • left_join(x, y) :包含所有x中以及y中匹配的行
    • right_join(x, y,by=c(“Name”=”name”)) :包含所有y中以及x中匹配的行
    • full_join(x,y,by=c(“Name”=”name”)) :包含所以x、y中的行
    • semi_join(x, y) :包含x中,在y中有匹配的行,结果为x的子集
    • anti_join(x, y) :包含x中,不匹配y的行,结果为x的子集,与semi_join相反
<template> <div id="bar1" style="width:1200px; height:800px"> <button @click="getData">获取API数据</button> <button @click="processData">处理数据</button> </div> </template> <script> import * as echarts from "../src/assets/echarts.min"; import axios from "axios"; export default { name: "Bar1", data() { return { list: [], map: new Map(), huabeiData: [], x_data: [], y_data: [], }; }, methods: { getData() { axios .post("/api/dataVisualization/selectOrderInfo", { startTime: "2020-01-01 00:00:00", endTime: "2020-12-30 00:00:00", }) .then((result) => { this.list = result.data.data; console.log(result.data.data); }) .catch((err) => { console.log(err); }); }, processData() { let list = this.list; function classify(list) { let map = {}; let myArr = []; for (var i = 0; i < list.length; i++) { if (!map[list[i].regionName]) { myArr.push({ regionName: list[i].regionName, data: [list[i]], }); map[list[i].regionName] = list[i]; } else { for (var j = 0; j < myArr.length; j++) { if (list[i].regionName === myArr[j].regionName) { myArr[j].data.push(list[i]); break; } } } } return myArr; } console.log(classify(list)); var classifiedList = classify(list); console.log(classifiedList, "数组"); var allMedians = []; for (var i = 0; i < classifiedList.length; i++) { var regionData = classifiedList[i].data; var amounts = []; for (var j = 0; j < regionData.length; j++) { amounts.push(regionData[j].finalTotalAmount); } amounts.sort((a, b) => b - a); console.log(amounts, "顺序"); var median; var length = amounts.length; if (length % 2 === 0) { median = (amounts[length / 2 - 1] + amounts[length / 2]) / 2; } else { median = amounts[Math.floor(length / 2)]; } allMedians.push({ regionName: classifiedList[i].regionName, median: median, }); } console.log(allMedians); for(let i of allMedians){ this.x_data.push(i.regionName) this.y_data.push(i.median) } console.log(this.x_data) console.log(this.y_data) let barChart = echarts.init(document.getElementById("bar1")) const option = { xAxis:{ type:'category', data:this.x_data }, yAxis:{ type:'value', }, series:[ { data:this.y_data, type:'bar' } ] }; option && barChart.setOption(option,true); }, }, }; </script>这段代码还有需要修改的地方吗,请表明理由
07-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值