假设我有一个数据框“x”
> x
x1 x2 x3
1 box 0.81432465 4
2 box 0.19628122 2
3 box 0.06619734 1
4 box 0.90403568 5
5 box 0.52693274 3
6 axe 0.28665840 2
7 axe 0.45193228 3
8 axe 0.48278466 4
9 axe 0.86553847 5
10 axe 0.13925190 1
11 cat 0.86340413 5
12 cat 0.28387540 2
13 cat 0.24297445 1
14 cat 0.36651366 3
15 cat 0.55038108 4
Run Code Online (Sandbox Code Playgroud)
然后我对其执行以下操作
> x.factor <- factor(x[,1]) ## convert column 1 as factors
> x.split <- …Run Code Online (Sandbox Code Playgroud) 我有以下数据框架.
> temp
x1 x2
1 1 INDIA
2 2 INDIA
3 3 US
4 4 US
> PortfolioIndices
Country Index CCY
1 INDIA CNX50 INR
2 US SP500 USD
3 UK FTSE100 GBP
Run Code Online (Sandbox Code Playgroud)
我想使用PortfolioIndices数据框中的映射,使用与x2列中各个国家/地区对应的货币向temp添加一个列.这样的东西应该是输出
> temp
x1 x2 x3
1 1 INDIA INR
2 2 INDIA INR
3 3 US USD
4 4 US USD
Run Code Online (Sandbox Code Playgroud)
我不想使用for循环,因为实际数据可能非常大,并且在这种情况下使用for循环将是非常低效的.有没有更好的方法来实现给定的输出?
提前致谢.
假设我使用以下语句生成了一个向量:
x1 <- rep(4:1, sample(1:100,4))
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试使用以下命令计算出现次数
count(x1)
x freq
1 1 40
2 2 57
3 3 3
4 4 46
Run Code Online (Sandbox Code Playgroud)
要么
as.data.frame(table(x1))
x1 Freq
1 1 40
2 2 57
3 3 3
4 4 46
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,都不会保留发生的顺序.我想保留发生的顺序,即输出应该是这样的
x1 Freq
1 4 46
2 3 3
3 2 57
4 1 40
Run Code Online (Sandbox Code Playgroud)
最干净的方法是什么?另外,有没有办法强制执行特定订单?
我试图使用ggplot绘制线条加条形图,但我收到错误"错误:ggplot2不知道如何处理类uneval的数据"
require(ggplot2)
df.1 <- data.frame(x = c(1:5), y = rnorm(5))
df.2 <- data.frame(x = c(1:10), y = runif(10))
p <- ggplot(df.1, aes(x=x, y=y)) +
geom_bar(stat = "identity") +
geom_line(df.2, aes(x=x, y=y))
Run Code Online (Sandbox Code Playgroud)
两个数据帧的x轴刻度始终相同,但需要将其中一个绘制为折线图,而另一个需要绘制为条形图.在我看来,ggplot2不支持两个数据帧.有没有解决这个问题的工作?
我尝试通过rCharts使用nvd3但是现在似乎不支持linePlusBarChart.
提前致谢!!!
这是虚拟数据
temp.df <- data.frame(count = rep(1,6), x = c(1,1,NA,NA,3,10), y=c("A","A","A","A","B","B"))
Run Code Online (Sandbox Code Playgroud)
当我按如下所示应用汇总时:
aggregate(count ~ x + y, data=temp.df, FUN=sum, na.rm=FALSE, na.action=na.pass)
Run Code Online (Sandbox Code Playgroud)
我得到:
x y count
1 1 A 2
2 3 B 1
3 10 B 1
Run Code Online (Sandbox Code Playgroud)
但是,我想要以下输出:
x y count
1 NA A 2
2 1 A 2
3 3 B 1
4 10 B 1
Run Code Online (Sandbox Code Playgroud)
希望有道理,谢谢。