我正在研究R并尝试使用饼图绘制时钟.
码:
pie(c(25,20,15,10,10,30),
labels = c(1,2,3,4,5,6,7,8,9,10,11,12),
col = rainbow(length(lbls)), clockwise = TRUE, init.angle = 90)
Run Code Online (Sandbox Code Playgroud)
但我需要所有12个标签独立于输入中没有任何段.

我该如何实现它?
问候
所以我从CSV中获取了一些信息,将其存储为矩阵,并试图在结果上计算以下操作,但它给了我一个2x2的NA数组.没有在这里看到问题.
data <- read.csv('qog.csv', sep=';')
X <- matrix( log( data$wdi_gnipc ) )
X <- cbind(X, data$ciri_empinx_new)
t(X) %*% X
Run Code Online (Sandbox Code Playgroud)
当我看到X和t(X)时,它们看起来就像我期望的那样,所以我将2xn矩阵与nx2矩阵(n是像193这样的大数字)进行矩阵乘法,因此矩阵乘积应该很好 - 定义并给出有意义的2x2答案.
什么想法可能会出错?
注意:我试试的时候
a < - rbind(c(1,2),c(3,4))t(a)%*%a
它给出了期望的结果.不确定它与我正在对数据做什么之间的重要区别.
我创建了这个函数:
nDone<- function (under,strike,ttoe,vol,rf,dy) {
return(pnorm(((log(under/strike) + (rf-dy+(vol^2)/2)*ttoe)/(vol*(ttoe^0.5)))))
}
nDone(90,100,3,0.17,0.05,0)
[1] 0.6174643
Run Code Online (Sandbox Code Playgroud)
到目前为止,这很好并且有效.现在我想将函数应用于矩阵的每一行.
b<- c(90,95,100,100,3,2,0.17,0.18,0.05,0.05,0,0)
dim(b) <- c(2,6)
Run Code Online (Sandbox Code Playgroud)
这使:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 90 100 3 0.17 0.05 0
[2,] 95 100 2 0.18 0.05 0
Run Code Online (Sandbox Code Playgroud)
所以现在我想将每行中的元素传递给函数.我尝试过使用申请:
apply(b,1,nDone)
Run Code Online (Sandbox Code Playgroud)
并得到以下错误:
Error in under/strike : 'strike' is missing
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
lapply(b,nDone)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Error in under/strike : 'strike' is missing
Run Code Online (Sandbox Code Playgroud)
我想要的是该功能的多个结果.我在这做错了什么?
提供如下矢量,
vec01 <- c(1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 1, 2, 1,
2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 2,
1, 2, 2, 1, 1, 2, 3, 4, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 1, 1, 1,
2, 1, 2, 3, 4, 2, 1, 1, 1, 1, 1, …Run Code Online (Sandbox Code Playgroud) 我有一个数据集:
X Y
20 12
24 11
12 7
10 2
41 24
13 9
50 17
4 12
17 12
35 19
Run Code Online (Sandbox Code Playgroud)
现在我必须在20 <X <50时找到Y的平均值.
我的尝试:
data <- data.frame(X=c(20,24,12,10,41,13,50,4,17,35),
Y=c(12,11,7,2,24,9,17,12,12,19))
sub <- subset(data,X>20 & X<50)
mean(sub$Y)
Run Code Online (Sandbox Code Playgroud)
有没有直接的方法在20 <X <50时找到Y的平均值而不修改原始数据框,即没有子集呢?