小编Son*_*Son的帖子

更改数据框的列名称

我有一个名为"newprice"的数据框(见下文),我想在R中改变程序中的列名.

> newprice
   Chang.  Chang.   Chang.
1     100       36      136
2     120      -33       87
3     150       14      164
Run Code Online (Sandbox Code Playgroud)

事实上,这正在做什么:

names(newprice)[1]<-paste("premium")
names(newprice)[2]<-paste("change")
names(newprice)[3]<-paste("newprice") 
Run Code Online (Sandbox Code Playgroud)

我没有将它放在循环中,因为我希望每个列名称与您看到的不同.

当我将程序粘贴到R控制台时,这是它给我的输出:

> names(newprice)[1]<-paste(“premium”)
Error: unexpected input in "names(newprice)[1]<-paste(“"
> names(newprice)[2]<-paste(“change”)
Error: unexpected input in "names(newprice)[2]<-paste(“"
> names(newprice)[3]<-paste(“newpremium”)
Error: unexpected input in "names(newprice)[3]<-paste(“"
Run Code Online (Sandbox Code Playgroud)

我同样尝试使用该c()功能 - 例如c("premium"),而不是paste()功能,但无济于事.

有人可以帮我解决这个问题吗?

r rename dataframe

370
推荐指数
14
解决办法
124万
查看次数

在R程序中请求用户输入的正确方法是什么?

下面我的程序(分为两部分)可以单独运行 - 也就是说,如果我将第一部分粘贴到R控制台,运行它然后粘贴第二部分并运行它.但是,这不是我想要的.我想立刻运行整个程序.如果我这样做,它会在我的控制台中显示以下错误:

1: 
Read 0 items
1: 
Read 0 items
Error in while ((n <= 0) | (acr <= 0) | (acr >= 1)) { : 
  argument is of length zero
Run Code Online (Sandbox Code Playgroud)

我试图找出问题,但我找不到根本原因.如果有人能帮助我,我会非常高兴.

#**FIRST PART OF THE PROGRAM**

n <- -2
acr <- -2
while((n<=0) | (acr<=0) | (acr>=1)) {
   print("enter a  positive integer and the average cancellation rate between 0 and 1  
                you want")
   try(n <- scan(what=integer(), nmax=1), silent=TRUE)
   try(acr <- scan(what=double(), nmax=1), silent=TRUE)
}


#**SECOND PART OF THE …
Run Code Online (Sandbox Code Playgroud)

user-input r readline

31
推荐指数
2
解决办法
5万
查看次数

使用ggplot2绘制R中的条形图

我有一个数据框toplot_noind,如下所示.

> toplot_noind

    Chang.1  Chang.2  Chang.3  Chang.4  Chang.5  Chang.6  Chang.7  Chang.8
18    150.3     84.61     31.45     11.08     -0.19    -57.83    -88.63    -98.39
Run Code Online (Sandbox Code Playgroud)

我想使用这个数据框来绘制使用ggplot2的条形图.

我不需要列名:Chang.1,Chang.2等,在图中.

我希望这些8个值150.3,84.61,..., - 98.39出现在y轴上(18不是值的一部分,它是行的名称).

此外,因为有8个值,我想在x轴上有8个条形 - 每个条形指向这些值.

因此,我想在x轴上将这些条形命名为1(对于第1条),2(对于第2条),3,...,8依次命名.

另外,我想将y轴标记为"总预期利润",将x轴标记为"溢价变化".

下面显示的是我试图做的但它不起作用.实际上我已经尝试过阅读ggplot2,但我读到的材料无法让我理解,但我需要在我的作业中使用这个条形图.我的提交时间非常有限.

library(reshape)
library(ggplot2)

t<-ncol(toplot_noind)

a<-seq(1:t)

ggplot(toplot_noind, aes(x = a, y = toplot_noind, xlab="premium change", ylab="Total Expected Profit")) + 
 geom_bar(position = "dodge")
Run Code Online (Sandbox Code Playgroud)

非常感谢所有可以帮助我的人.

艾萨克

r ggplot2

4
推荐指数
1
解决办法
5346
查看次数

检查R中字符(字母)数据输入的正确方法是什么?

假设我希望我的R程序的用户输入正数.

如果他输入负数或输入任何字母(a,b,c,d等),我会想让他继续尝试,直到他输入所需的正数.

如何检查他是否输入了一个角色(a,b,c等)?

例如,如果我有:(事实上,这个网站上有人帮我正确编写了这段代码,但我不明白某些特别的东西,我"#explanation of this line"在代码中指出的第三行

n <- -1
while(is.na(n) | (n < 1)  ){
  n <- readline("enter a positive integer for the number of simulations: ")
  n <- ifelse(grepl("\\D",n),-1,as.integer(n)) #explanation of this line
}
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 我知道这is.na(n)意味着如果n为null(不可用),那么如果用户按下Enter则is.na(n)成为TRUE.那是对的吗?

  2. 是什么意思:n <- ifelse(grepl("\\D",n),-1,as.integer(n)

  3. 如何检查用户是否输入(a,b,c,d,...)?

感谢那些可以帮助我的人.

Owusu Isaac

r

2
推荐指数
1
解决办法
225
查看次数

标签 统计

r ×4

dataframe ×1

ggplot2 ×1

readline ×1

rename ×1

user-input ×1