我试图将列索引传递给ggplot作为我将重复使用的函数的一部分.喜欢:
myplot <- function(df){
ggplot(df, aes(df[, 1], df[, 2])) + geom_point()
}
Run Code Online (Sandbox Code Playgroud)
我总是使用第一列作为我的x变量,第二列作为我的y变量,但列名在数据集之间变化.我到处搜索了......有什么想法吗?
这是我用过的答案:
require(ggplot2)
myplot <- function(df){
ggplot(df, aes_string(colnames(df)[1], colnames(df)[2])) + geom_point()
}
Run Code Online (Sandbox Code Playgroud) 我正在创建一些随机样本并绘制它们并注意到一种奇怪的行为.加载ggplot2后,采样值不同:
set.seed(111)
library(ggplot2)
sample(1:10, 10)
# [1] 8 4 5 3 7 1 6 2 10 9
set.seed(111)
sample(1:10, 10)
# [1] 6 7 3 4 8 10 1 2 9 5
Run Code Online (Sandbox Code Playgroud)
我可以很容易地避免这种行为,但是ggplot2有没有理由改变种子值?
我一直试图找到一个返回方程的所有复杂解的函数,例如:
16^(1/4) = 2+i0, -2+i0, 0+i2, 0-i2
Run Code Online (Sandbox Code Playgroud)
就目前而言,如果我进入16^(1/4)
控制台,它只返回2.我可以为此编写一个函数,但我想知道是否有一种简单的方法在R中执行此操作.
我需要你的帮助:
我有一个清单:
list(c(0,1), c(1,1), c(3,2))
Run Code Online (Sandbox Code Playgroud)
我怎么能得到这笔钱:
(0-1)+(1-1)+(3-2)
Run Code Online (Sandbox Code Playgroud) 在verilog中,我可以为一个向量分配一个字符串,如:
wire [39:0] hello;
assign hello = "hello";
Run Code Online (Sandbox Code Playgroud)在VHDL中,我很难找到这样的方法:
SIGNAL hello : OUT std_logic_vector (39 DOWNTO 0);
...
hello <= "hello";
Run Code Online (Sandbox Code Playgroud)我一直在用:
hello <= X"65_68_6c_6c_6f";
Run Code Online (Sandbox Code Playgroud)
这对于大字符串来说是不清楚和耗时的.
我查看了textio
包和txt_util
包,但似乎都不清楚如何解释字符串并将其转换为std_logic.
是否有一种简单的方法可以在VHDL中将ascii代码分配给std_logic?
这是一个最小的例子:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY test IS
PORT(
ctrl : IN std_logic;
stdout : OUT std_logic_vector (39 DOWNTO 0)
);
END ENTITY;
ARCHITECTURE rtl OF test IS
SIGNAL temp : std_logic_vector (39 DOWNTO 0);
BEGIN
stdout <= temp;
PROCESS(ctrl)
BEGIN
IF (ctrl = '0') THEN …
Run Code Online (Sandbox Code Playgroud) 我有一个简单的数字系统,它有一个输入x(n)= u(n) - u(n-4).
我试图用'signal'包中的conv()函数或'stats'包中的convolve()函数找到输出y(n),并绘制y(n)对n为-10≤n≤ 10.
到目前为止,我有以下代码:
library(signal)
n <- c(-10:10) # Time index
x <- c(rep(0, 10), rep(1, 4), rep(0, 7)) # Input Signal
h1 <- c(rep(0, 11), 0.5, rep(0, 9)) # Filter 1
h2 <- 0.8^n # Filter 2
h2[0:11] <- 0 #
system <- data.frame(n, x, h1, h2)
y <- conv(x + conv(x, h1), h2) # Output Signal
system <- transform(system, y=y[1:21])
plot(system$n, system$y)
Run Code Online (Sandbox Code Playgroud)
我检查了这个情节,这是非常错误的.我认为在进行卷积时有一些向量的循环,而conv()函数的输出似乎与原始时间索引不一致.我似乎无法弄清楚如何修复我的逻辑.我意识到conv(n,m)函数返回一个长度为(m + n)-1的向量,有没有一种很好的方法可以很容易地将这个向量与时间索引向量相匹配?
这需要一些数字信号处理的知识以及R中的编码,如果有人有为此目的使用R的经验并且可以提供一些指示,那将是很好的.提前致谢.
我有一些来自1位串行端口的数据,它有多个字节的变量长度,如下所示:
byte expected_1 [$] = {8'hBA, 8'hDD, 8'hC0, 8'hDE};
byte expected_2 [$] = {8'h01, 8'h23, 8'h45, 8'h67, 8'h89, 8'hAB, 8'hCD, 8'hEF};
Run Code Online (Sandbox Code Playgroud)
在每个正时钟边沿,发送一位.我需要testbench对序列的追求(将来可能有数千个),所以我想在系统verilog中使用断言自动化该过程.新的2012标准允许将队列传递给属性,但队列是否可以通过递归属性发送?我收到一些关于分层引用的错误.
这是我迄今为止(从@格雷格帮助这里):
default clocking sck @(posedge sck); endclocking : sck
sequence seq_serial(logic signal, logic [7:0] expected); // check each bit
byte idx = 7;
(signal == expected[idx], idx--)[*8];
endsequence : seq_serial
property recurring_queue(bit en, logic data, byte data_e [$])
int queue_size = data_e.size;
logic [7:0] expected = data_e.pop_front();
if(queue_size != 0) (
!en throughout (seq_serial(data, expected) ##1 …
Run Code Online (Sandbox Code Playgroud) verification verilog assertions system-verilog system-verilog-assertions
如果我用矩阵索引所有整数的data.frame,我得到预期的结果.
df <- data.frame(c1=1:4, c2=5:8)
df1
# c1 c2
#1 1 5
#2 2 6
#3 3 7
#4 4 8
df1[matrix(c(1:4,1,2,1,2), nrow=4)]
# [1] 1 6 3 8
Run Code Online (Sandbox Code Playgroud)
如果data.frame有一列字符,则结果是所有字符,即使我只是对整数列建立索引.
df2 <- data.frame(c0=letters[1:4], c1=1:4, c2=5:8)
df2
# c0 c1 c2
#1 a 1 5
#2 b 2 6
#3 c 3 7
#4 d 4 8
df2[matrix(c(1:4,2,3,2,3), nrow=4)]
# [1] "1" "6" "3" "8"
class(df[matrix(c(1:4,2,3,2,3), nrow=4)])
# [1] "character"
df2[1,2]
# [1] 1
Run Code Online (Sandbox Code Playgroud)
我最好的猜测是,R太忙了,无法通过答案来检查它们是否都来自某个班级.任何人都可以解释为什么会这样吗?
我正在使用base
R绘图函数来生成饼图,我想更改每个饼图段轮廓的线条粗细. ?pie
似乎表明我可以添加可选的图形参数,但添加lwd=
似乎不起作用.任何人都有任何关于我如何能够做到这一点的线索.我还不熟练制作饼图ggplot
,并且希望坚持使用base
R绘图(如果可能的话).
library(RColorBrewer)
x1 <- data.frame(V1 = c(200, 100)) ## generate data
row.names(x1) <- c("A", "B")
x1$pct <- round((x1$V1/sum(x1$V1))*100, 1)
lbls1 <- paste(row.names(x1), "-(",x1$pct, '%)', sep='') ## add some informative stuff
pie(x1$V1, labels=lbls1, col=tail(brewer.pal(3, 'PuBu'), n=2),
main=paste('My 3.1415'), cex=1.1, lwd= 3)
Run Code Online (Sandbox Code Playgroud)
注意lwd=
不会像在其他基础绘图中那样增加线条粗细.
有人有任何线索吗?
我有两个变量的散点图,例如:
x<-c(0.108,0.111,0.113,0.116,0.118,0.121,0.123,0.126,0.128,0.131,0.133,0.136)
y<-c(-6.908,-6.620,-5.681,-5.165,-4.690,-4.646,-3.979,-3.755,-3.564,-3.558,-3.272,-3.073)
Run Code Online (Sandbox Code Playgroud)
我想找到更适合这两个变量之间关系的函数.
准确地说,我想拟合比较三种模式:linear
,exponential
和logarithmic
.
我正在考虑将每个函数拟合到我的值,计算每种情况下的可能性并比较AIC值.
但我真的不知道如何或从哪里开始.任何可能的帮助将非常感激.
非常感谢你提前.
蒂娜.
r ×8
ggplot2 ×2
verilog ×2
ascii ×1
assertions ×1
convolution ×1
dataframe ×1
digital ×1
sample ×1
seeding ×1
sum ×1
vector ×1
verification ×1
vhdl ×1