Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:二进制运算符的非数值参数_R_Plot_Data Visualization_Data Manipulation - Fatal编程技术网

R:二进制运算符的非数值参数

R:二进制运算符的非数值参数,r,plot,data-visualization,data-manipulation,R,Plot,Data Visualization,Data Manipulation,我正在使用R编程语言。我试图用一些假数据绘制“平行坐标图”: library(MASS) a = rnorm(100, 10, 10) b = rnorm(100, 10, 5) c = rnorm(100, 5, 10) d = matrix(a, b, c) parcoord(d[, c(3, 1, 2)], col = 1 + (0:149) %/% 50) 但是,当我尝试将数值变量和因子变量混合在一起时,出现了一个问题: group <- sample( LETTERS

我正在使用R编程语言。我试图用一些假数据绘制“平行坐标图”:

library(MASS)

a = rnorm(100, 10, 10)

b = rnorm(100, 10, 5)

c = rnorm(100, 5, 10)

d = matrix(a, b, c)

parcoord(d[, c(3, 1, 2)], col = 1 + (0:149) %/% 50)
但是,当我尝试将数值变量和因子变量混合在一起时,出现了一个问题:

group <- sample( LETTERS[1:4], 100, replace=TRUE, prob=c(0.25, 0.25, 0.25, 0.25) )
d = matrix(a,b, group)
 parcoord(d[, c(3, 1, 2)], col = 1 + (0:149) %/% 50)

Error in x - min(x, na.rm = TRUE): non-numeric argument to binary operator

group一个选项是使用因子标记矩阵行,并在绘图上使用因子,例如

library(MASS)
set.seed(300)
par(xpd=TRUE)
par(mar=c(4, 4, 4, 6))
a = rnorm(12, 10, 10)
b = rnorm(12, 10, 5)
c = rnorm(12, 5, 10)
group <- sample(c("#FF9289", "#FF8AFF", "#00DB98", "#00CBFF"),
                12, replace=TRUE)

d = cbind(a, b, c)
rownames(d) <- group

parcoord(d[, c(3, 1, 2)], col = group)
title(main = "Plot", xlab = "Variable", ylab = "Values")
axis(side = 2, at = seq(0, 1, 0.1),
     tick = TRUE, las = 1)
legend(3.05, 1, legend = c("A", "B", "C", "D"), lty = 1,
       col = c("#FF9289", "#FF8AFF", "#00DB98", "#00CBFF"))
库(MASS)
种子集(300)
par(xpd=TRUE)
par(mar=c(4,4,4,6))
a=r形式(12,10,10)
b=rnorm(12,10,5)
c=rnorm(12,5,10)

这段代码中有几个部分会抛出错误。您列出的错误来自尝试对没有数值的事物进行“计算”,例如
“字符串”-“字符串”
。本例中的子集仍然是错误的,这是您上一个问题中的问题。我建议你花些时间学习R的基本原理。我不想让你气馁——欢迎你来这里。只是这个问题没有真正意义,而且很明显,您不理解R的一些基本语法。也许您可以查看这些参考资料:谢谢您的回答!我正在尝试这样做:。你认为这是可能的吗?是的,我认为如果你使用一个有序因子(即1='类别1',2='类别2',3='类别4'),这是可能的。我做完工作后会想办法的。试一下——这符合你的目的吗?谢谢!我还在想办法
library(MASS)
set.seed(123)
par(xpd=TRUE)
par(mar=c(4, 4, 4, 6))
a = rnorm(12, 10, 10)
b = c(rep("Var_1", 3),
      rep("Var_2", 3),
      rep("Var_3", 3),
      rep("Var_4", 3))
c = rnorm(12, 5, 10)
group <- c(rep("#FF9289", 3),
           rep("#FF8AFF", 3),
           rep("#00DB98", 3),
           rep("#00CBFF", 3))

d = data.frame("A" = a,
               "Factor" = b,
               "C" = c,
               "Group" = group)

d$Factor <- sapply(d$Factor, switch,
                   "Var_1" = 0.8,
                   "Var_2" = 0.6,
                   "Var_3" = 0.4,
                   "Var_4" = 0.2)

parcoord(d[, c(1, 2, 3)], col = group)
title(main = "Plot", xlab = "Variable", ylab = "Values")
axis(side = 2, at = seq(0, 1, 0.1),
     tick = TRUE, las = 1)
legend(3.05, 1, legend = c("A", "B", "C", "D"), lty = 1,
       col = c("#FF9289", "#FF8AFF", "#00DB98", "#00CBFF"))
mtext(text = "Var 1", side = 1, adj = 0.6, padj = -30)
mtext(text = "Var 3", side = 1, adj = 0.6, padj = -12)
mtext(text = "Var 2", side = 1, adj = 0.6, padj = -21)
mtext(text = "Var 4", side = 1, adj = 0.6, padj = -3)