R language Assignment 1 Part B 完成回忆

R language Assignment 1 Part B 完成回忆

关于R语言

我们这学期学习的 Data Analysis and Visualization 这门课,里面用到的就是 R Language。 对于不会MATLAB的我来说,R Language的确是很酷的一门语言。决定有机会的话认真学一下。

作业与回忆

PART A

作业的part A 部分,主要是对老师给定的一个dataset的分析, 从几万条数据中随机选取400条,然后计算它的各类数据,比如proportion、max、min、median等。
用到的方法大致有如下:
下面展示一些 内联代码片

prop.table(table(dat$Income.of.Policy.Holder, useNA = "ifany")) * 100 # N/A percentage
summary(dat$Income.of.Policy.Holder)  # Values like "min", "max", "mean"
basicStats(dat$Income.of.Policy.Holder)  #skewness

这里印象比较深刻的是,在R Language中关于for循环的写法。
在其他语言中,一般是:

for d in data: 
	if d.xxx == "xxx":
		xxx

但是自己做作业的时候发现的出来的数据怎么都不对,后来找了好久,才发现可以换另外一种写法:

# 4. replace N/A values in "Claimed Amount Received "
# (1).Search the "Fraud Flag" values when "Claimed Amount Received" is "N/A"
for(i in 1:nrow(dat)){
  if(is.na(dat$Claim.Amount.Received[i])){
    print(dat$Fraud.Flag[i])
  }
}
# Conclusion: We can see all the "Fraud Flag" is "Yes"
# (2).Search the "median" value of "Claimed Amount Received" when "Fraud Flag" is "Yes"
for(i in 1:nrow(dat)){
  if(toString(dat$Fraud.Flag[i]) == "Yes"){
    print(dat$Claim.Amount.Received[i])
  }
}
# Conclusion: We can see that when "Fraud Flag" is "Yes", "Claimed Amount Received" is "N/A" or "0"
# (3).Finally, we have a conclusion, when "Frand Flag" is "Yes", "Claimed Amount Received" is "0",
# So, we can replace all the N/A here with "0"

真的是长见识了。。。
不知道还有没有其他语言会用到类似的写法。还是这是R Language自己特别的写法?

嗯,等以后自己学会了回来回答这个问题。

PART B

今天完成的是 PART B。 这个部分主要是对一个数据集进行PCA(Principal Component Analysis)。其中会要求进行Data Clean、Scree Plot、还有biplot的绘制,以及对于它的一些常规分析。

印象比较深刻的部分有:
文件读取时候的一些写法:

dat <- read.csv("/Users/collin/Downloads/My R Codes/Malware.csv",na.strings="", stringsAsFactors = FALSE)

最后stringsAsFactors = FALSE 是自己添加的,是自己在后面遇到数据转换的时候把所有“Yes”转成“1”的时候会出现错误而找到的方法。

数组内的批量转换
R Language居然可以一行代码批量转换!这个也很酷啊。具体写法如下:

mydata$inc.excutable[mydata$inc.excutable == "Yes"] <- 1

PCA这里我们主要用到的是:

data.pca <- prcomp(mydata[1:9], scale = TRUE)

其他就是一些基本的写法了。
table、summary、sum等。

总结

这次作业当中感觉不太好的就是对Scree plot 和 biplot还是不怎么理解。
以后有机会要多学学这方面的东西。


(在公司的实习快结束了,希望自己在转485签证和后面拿PR的事情上一切顺利!)
(居家隔离真的好不想动。。不过还是要每天做一点东西出来,不然不好跟上面的领导交差。明天把项目里面那个alert弹窗的问题解决了。。。)
(嘶。。到底swiftUI里面怎么能进入页面就进行一个判断然后决定是否弹出一个alert窗口呢?我找到的都是必须绑定在button上面的。)

 var body: some View {
       
        }
        .frame(height: 110)
        .alert(isPresented: self.$showingAlert) {
            Alert(title: Text("Important message"),
            message: Text("Wear sunscreen"),
            dismissButton: .default(Text("Got it!"))
             )
        }

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值