A. r语言中能计算数据距离的命令
关于谱能量,有这样一种解释,你可以试着去算一算信号可以分成能量信号与功率信号,非周期能量信号具有能量谱密度,是傅立叶变换的平方,功率信号具有功率谱密度,其与自相关函数是一对傅立叶变换对,等于傅立叶变换的平方/区间长度。不能混淆。能量信号是没有功率谱的。胡广书老师的书上找到这么一段话,“随机信号在时间上是无限的,在样本上也是无穷多,因此随机信号的能量是无限的,它应是功率信号。功率信号不满足付里叶变换的绝对可积的条件,因此其付里叶变换是不存在的。如确定性的正弦函数的付里叶变换是不存在,只有引入了冲激函数才求得其付里叶变换。因此,对随机信号的频谱分析,不再简单的是频谱,而是功率谱。”对于确定性信号而言,里面存在能量信号,是没有功率谱密度的,也存在功率信号,是有功率谱密度的。所以信号的频谱与是否是确定性信号没有必然联系。以下论点来源于研学论坛:频谱是信号的傅立叶变换。它描述了信号在各个频率上的分布大小。频谱的平方(当能量有限,平均功率为0时称为能量谱)描述了信号能量在各个频率上的分布大小。计算过程中,都是通过样本数据的快速傅立叶变换来计算。但不同的是,信号的频谱是复数,包含幅频响应和相频响应,重复计算时的结果基本相同。而随机信号的功率谱也可以对数据进行FFT,但必须计算模值的平方,因为功率谱是实数。而且换一组样本后,计算的结果略有不同,因为随机信号的样本取值不同。要得到真实的功率谱必须进行多次平均,次数越多越好。根据parseval定理,信号傅氏变换模平方被定义为能量谱,即单位频率范围内包含的信号能量。自然,能量跟功率有一个时间平均的关系,所以,能量谱密度在时间上平均就得到了功率谱。matlab实现经典功率谱估计fft做出来是频谱,psd做出来是功率谱;功率谱丢失了频谱的相位信息;频谱不同的信号其功率谱是可能相同的;功率谱是幅度取模后平方,结果是个实数matlab中自功率谱密度直接用psd函数就可以求,按照matlab的说法,psd能实现Welch法估计,即相当于用改进的平均周期图法来求取随机信号的功率谱密度估计。psd求出的结果应该更光滑吧。1、直接法:直接法又称周期图法,它是把随机序列x(n)的N个观测数据视为一能量有限的序列,直接计算x(n)的离散傅立叶变换,得X(k),然后再取其幅值的平方,并除以N,作为序列x(n)真实功率谱的估计。Matlab代码示例:clear;Fs=1000; %采样频率n=0:1/Fs:1;%产生含有噪声的序列xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));window=boxcar(length(xn)); %矩形窗nfft=1024;[Pxx,f]=periodogram(xn,window,nfft,Fs); %直接法plot(f,10*log10(Pxx));2、间接法:间接法先由序列x(n)估计出自相关函数R(n),然后对R(n)进行傅立叶变换,便得到x(n)的功率谱估计。Matlab代码示例:clear;Fs=1000; %采样频率n=0:1/Fs:1;%产生含有噪声的序列xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));nfft=1024;cxn=xcorr(xn,'unbiased'); %计算序列的自相关函数CXk=fft(cxn,nfft);Pxx=abs(CXk);index=0:round(nfft/2-1);k=index*Fs/nfft;plot_Pxx=10*log10(Pxx(index+1));plot(k,plot_Pxx);3、改进的直接法:对于直接法的功率谱估计,当数据长度N太大时,谱曲线起伏加剧,若N太小,谱的分辨率又不好,因此需要改进。3.1、Bartlett法Bartlett平均周期图的方法是将N点的有限长序列x(n)分段求周期图再平均。Matlab代码示例:clear;Fs=1000;n=0:1/Fs:1;xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));nfft=1024;window=boxcar(length(n)); %矩形窗noverlap=0; %数据无重叠p=0.9; %置信概率[Pxx,Pxxc]=psd(xn,nfft,Fs,window,noverlap,p);index=0:round(nfft/2-1);k=index*Fs/nfft;plot_Pxx=10*log10(Pxx(index+1));plot_Pxxc=10*log10(Pxxc(index+1));figure(1)plot(k,plot_Pxx);pause;figure(2)plot(k,[plot_Pxx plot_Pxx-plot_Pxxc plot_Pxx+plot_Pxxc]);3.2、Welch法Welch法对Bartlett法进行了两方面的修正,一是选择适当的窗函数w(n),并再周期图计算前直接加进去,加窗的优点是无论什么样的窗函数均可使谱估计非负。二是在分段时,可使各段之间有重叠,这样会使方差减小。Matlab代码示例:clear;Fs=1000;n=0:1/Fs:1;xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));nfft=1024;window=boxcar(100); %矩形窗window1=hamming(100); %海明窗window2=blackman(100); %blackman窗noverlap=20; %数据无重叠range='half'; %频率间隔为[0 Fs/2],只计算一半的频率[Pxx,f]=pwelch(xn,window,noverlap,nfft,Fs,range);[Pxx1,f]=pwelch(xn,window1,noverlap,nfft,Fs,range);[Pxx2,f]=pwelch(xn,window2,noverlap,nfft,Fs,range);plot_Pxx=10*log10(Pxx);plot_Pxx1=10*log10(Pxx1);plot_Pxx2=10*log10(Pxx2);figure(1)plot(f,plot_Pxx);pause;figure(2)plot(f,plot_Pxx1);pause;figure(3)plot(f,plot_Pxx2);
B. 如何在R语言中使用SQL命令
对于有SQL背景的R语言学习者而言,sqldf是一个非常有用的包,因为它使我们能在R中使用SQL命令。只要掌握了基本的SQL技术,我们就能利用它们在R中操作数据框。关于sqldf包的更多信息,可以参看cran。
在这篇文章中,我们将展示如何在R中利用SQL命令来连接、检索、排序和筛选数据。我们也将展示怎么利用R语言的函数来实现这些功能
http://blog.csdn.net/leolotus/article/details/50999602
C. r语言head函数什么意思
head(dataframe)——查看数据集前6行数据
<head> 标签用于定义网页文档的头部,它是所有头部元素的容器。
<head> 中的元素可以引用脚本、指示浏览器在哪里找到样式表、提供元信息等等。[1]
文档的头部描述了文档的各种属性和信息,包括文档的标题、在 Web 中的位置以及和其他文档的关系等。绝大多数文档头部包含的数据都不会真正作为内容显示给读者。
下面这些标签可用在 head 部分:<base>、<link>、<meta>、<script>、<style>以及<title>。<title>;定义文档的标题,它是 head 部分中必需存在的元素。
(3)r语言基本命令扩展阅读
Returns the first or last parts of a vector, matrix, table, data frame or function.
Since head() and tail() are generic functions, they may also have been extended to other classes.
返回向量、矩阵、表、数据框或函数的前(或者最后)一部分。head()和tail()相似,他们也可能被扩展到其他类。
R语言常用命令如下:
数学运算:
+,-,*,/,^,%%。(加,减,乘,除,乘方,求余。)
比较运算:
>,<,>=,<=,==,!=。(大于,小于,大于等于,小于等于,等于,不等于。)
逻辑运算:
&,|,!。(与,或,非。)
D. R语言:分别从201班和202班分层抽取16和18人,用到的命令是
你给的数据例子太不详细了,你可以参考下R包中的strata()函数:
strata(data, stratanames=NULL, size, method=c("srswor","srswr","poisson","systematic"), pik,description=FALSE)
详细的解释:
data: 带抽样数据。
stratanames: 进行分层所依据的变量名称。
size: 各层中要抽出的观测样本数。
method: 选择4中抽样方法,分别为无放回、有放回、泊松、系统抽样,默认为srswor。
pik: 设置各层中样本的抽样概率。
description: 选择是否输出含有各层基本信息的结果。
这里面有个别人举得详细例子,你可以看下:
http://blog.csdn.net/books_csdn/article/details/49188649
E. R语言的清屏命令
命令代码参考如下:
# An R function to clear the screen on RGui:
cls <- function() {
if (.Platform$GUI[1] != "Rgui")
return(invisible(FALSE))
if (!require(rcom, quietly = TRUE)) # Not shown any way!
stop("Package rcom is required for 'cls()'")
wsh <- comCreateObject("Wscript.Shell")
if (is.null(wsh)) {
return(invisible(FALSE))
} else {
comInvoke(wsh, "SendKeys", "\014")
return(invisible(TRUE))
}
}
#cls() # test
# If you want to make sure that it worked (well, not 100% sure, but...)
res <- cls()
if (res) cat("Console should be cleared now!\n")
F. 如何使用R语言统计矩阵的一列中数值等于1的元素个数
上图是一个简单的例子,b为一矩阵,现在想统计第二列中数值等于1的元素个数,首先做一个逻辑判断,即b[,2]==1,得到一个由布尔变量true和false组成的向量。
此时只需要知道true的数量,由于对布尔变量求和,true转化为1,false转化为0,故对该向量求和即可得到true的数量,即b[,2]中等于1的数量。
G. R语言中的几种数据结构
R语言中的几种数据结构
一 R中对象的5种基本类型
字符(character)
整数 (integer)
复数(complex)
逻辑(logical:True/False)
数值(numeric:real numbers)
查看对象类型的命令:class(x)
二 R语言中有如下几种数据结构:
向量 vector() 组内元素必须类型一致,否则将会被强制转换。
(1) 创建向量的三种方式:
<span style="font-size:18px;">x <- vector("numeric", length = 10)
x <- 1:4
x <- c("a",12,TRUE)</span>
(2) 强制转换的几个函数:
as.numeric(x) / as.character(x) / as.logical(x)
矩阵 matrix() 一列一列的填充元素
按行合并:rbind() 按列合并:cbind()
数组 array() 可以有多个维度
列表 list() 可以包含不同类型的元素
因子 factor()
(1) 分类数据/有序 vs. 无序
(2) 整数向量+标签(label)(优于整数向量)
Male/Female vs. 1/2
常用于lm(),glm()
(3) levels设置基线水平
table() 查看因子信息 unclass() 去除因子属性日期
x <- Sys.Date() 得到系统当前日期
julian(x) x距离1970-01-01的天数
时间 POSIXct / POSIXlt
POSIXct:整数,常用于存入数据框 as.POSIXct()
POSIXlt:列表,还包含星期、年月日等信息。as.POSIXlt()
strptime(x, format = "...") 将一般格式转化为时间格式
H. 在r语言中用什么命令读取全部数据
使用R语言的时候,如果是少量数据,不妨使用c()或其他函数进行创建;但是对于大量数据,最好还是先通过其他更方便的软件创建数据文件,然后使用R读入这个文件。
.csv是非常好的数据文件格式,跨平台支持非常好。我在Excel或者SPSS中创建的数据,只要存为csv格式,就可以使用几乎任何数据处理软件对这些数据进行处理了。使用通用格式在多人合作、不同版本兼容等常见行为中,优势十分明显。另外,之所以使用不同的数据处理软件,第一,可以取长补短。比如有些工作SPSS很复杂的,可以用R语言几行命令搞定。第二,可以进行软件间处理结果对照,发现问题。
R语言中读取外部文件的最基本函数是read.table(),还有用来读csv的read.csv(), .csv是非常好的数据文件格式,跨平台支持非常好。。
输入help(read.table)命令,就看到了关于数据输入函数的说明。
I. 在用R语言编程中,界面上出现了“+”号,是什么意思如何删除错误的输入,如何清屏谢谢
“+”标示语句没有闭合,比如在循环中,在分支中,或者写函数等,分多行都会有加号;
直接键盘按Esc键退出就可以把+号去掉,恢复正常的编辑状态。清屏用快捷键Ctrl+L 就可以清除所有编辑的语句。
例如;
td<-function(fx,a,b,r){ #(fx:是表达式,方程是fx=0,变量是x;a,b,区间[a,b],r是精度。
x<-a;da<-eval(fx);
调用函数:
fx<-expression(x*x-x-1);
a<-1;b<-2;r<-1e-5;
td(fx,a,b,r);
(9)r语言基本命令扩展阅读:
R语言有程序的控制结构和函数function。尽管R语言是解释型语言,但是可以用编译的方式实现,调用方法是source(file.R)命令。R语言的软件包能在编程环境中,通过子菜单下载后安装,因此是无障碍的。
程序中加载软件包的命令,
>library(parallel) #并行计算软件包,单线程多核
查找软件包中所有函数,
>library(help=parallel)
>help(packet=parallel)
R语言和解释型语言一样,没有变量声明。R语言能编写c++程序,应用Rcpp软件包。
J. R语言中计算期望的命令是什么
ÕâºÍдjavaÓÐʲôÇø±ðÂ𣿠int j = 0; //³õʼֵΪ0£¨×¼±¸ÇóºÍ£© for(int i=1;i<=100;i++) { j +=i; } System.out.println("ºÍΪ" +