我试图使用该browser()
命令进行早期调试.
现在,我一直在控制台输入窗口中获取以下内容:
Browse[13]>
Run Code Online (Sandbox Code Playgroud)
有可能摆脱这种情况,只是回到正常的控制台窗口?
我正在使用 R 4.0.2。
我手动安装从2包cfcdae
,并Stats5303lib
从这里。我按照这里的说明下载 Rtools 并使用它来安装上面的软件包。
问题是
writeLines('PATH="${RTOOLS40_HOME}\\usr\\bin;${PATH}"', con = "~/.Renviron") # runs fine
Sys.which("make") #works fine
make
"C:\\rtools40\\usr\\bin\\make.exe"
install.packages("Stat5303libs_0.7-5.zip",repos=NULL,type="source") # these all run fine
install.packages("cfcdae_0.8-4.zip",repos=NULL,type="source") # these all run fine
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行库时遇到以下问题时。
Error: package or namespace load failed for ‘cfcdae’:
package ‘cfcdae’ was installed before R 4.0.0: please re-install it
Run Code Online (Sandbox Code Playgroud)
我在下面尝试过,但仍然徒劳。
update.packages(ask=FALSE, checkBuilt=TRUE)
Run Code Online (Sandbox Code Playgroud)
为什么会这样?是不是因为包太旧了?
更新:
根据要求,我更改了.libPaths()
以下内容并更新了内容SessionInfo()
。
> .libPaths()
[1] "C:/Users/UserME/Documents/R/win-library/4.0"
[2] "C:/Program Files/R/R-4.0.2/library"
R version 4.0.2 (2020-06-22)
Platform: …
Run Code Online (Sandbox Code Playgroud) 我的问题是:假设您已经计算出一个算法,该算法给出了迭代次数,并且您希望打印出迭代次数.但输出总是很多小数位,如下所示:
64.00000000
Run Code Online (Sandbox Code Playgroud)
是否可以通过在R中进行类型转换来获取整数?你会怎么做?
基本上,我有以下说法:
counter <- 3
k <- 9999
Run Code Online (Sandbox Code Playgroud)
我想让R打印以下内容:
on the 3rd count: 9999
Run Code Online (Sandbox Code Playgroud)
我应该使用什么命令来执行此操作?请把它拼出来,因为我对R来说是全新的.
我尝试在 Windows 中的 CMD 上运行 Kafka,它非常不稳定,不断出错。然后我看到这篇文章,建议安装 Ubuntu 并从那里运行 Kafka。
我已经成功安装Ubuntu了。鉴于我已经定义JAVA_HOME=C:\Program Files\Java\jdk1.8.0_231
为环境变量之一,并且 CMD 识别该变量,但 Ubuntu 不识别,我想知道如何让 Ubuntu 识别它,因为此时,当我输入 时java -version
,Ubuntu 返回command not found
。
更新:请注意,我必须让 UbuntuJAVA_HOME
指向我的 Window 系统中定义的环境变量JAVA_HOME
。因为我的 Eclipse 中的 Java 程序需要使用相同的 JVM 与 Kafka 对话。
我已在我的文件中添加了以下两行/etc/profile
。echo $JAVA_HOME
返回正确的路径。但是,java -version
返回 Ubuntu 上安装的不同版本的 Java,而不是在/etc/profile
export JAVA_HOME=mnt/c/Program\ Files/Java/jdk1.8.0_231
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud) 我有以下函数,它接受形状为 (20,000 x 20,000) 的指示矩阵。我必须运行该函数 20,000 x 20,000 = 400,000,000 次。请注意,indicator_Matrix
当作为参数传递给函数时,必须采用 pandas 数据帧的形式,因为我实际问题的数据帧具有 timeIndex 和整数列,但为了理解问题,我对此进行了一些简化。
indicator_Matrix = pd.DataFrame(np.random.randint(0,2,[20000,20000]))
def operations(indicator_Matrix):
s = indicator_Matrix.sum(axis=1)
d = indicator_Matrix.div(s,axis=0)
res = d[d>0].mean(axis=0)
return res.iloc[-1]
Run Code Online (Sandbox Code Playgroud)
我尝试通过使用来改进它numpy
,但它仍然需要很长时间才能运行。我也尝试过concurrent.future.ThreadPoolExecutor
,但仍然需要很长时间才能运行,并且列表理解没有太大改进。
indicator_Matrix = pd.DataFrame(np.random.randint(0,2,[20000,20000]))
def operations(indicator_Matrix):
s = indicator_Matrix.to_numpy().sum(axis=1)
d = (indicator_Matrix.to_numpy().T / s).T
d = pd.DataFrame(d, index = indicator_Matrix.index, columns = indicator_Matrix.columns)
res = d[d>0].mean(axis=0)
return res.iloc[-1]
output = [operations(indicator_Matrix) for i in range(0,20000**2)]
Run Code Online (Sandbox Code Playgroud)
请注意,我再次转换为数据框的原因d
是因为我需要获取列均值并仅保留最后一列均值,使用.iloc[-1]
. …
例如:
method1 <- function(alpha,beta,ff)
Run Code Online (Sandbox Code Playgroud)
R允许这个???
我试图实现的是:我有一个通用的方法,method1
.我有其他方法:f2,f3,f4
.我希望它像method1 <- function(a,b, ff)
,其中a
&b
是常数,最重要的是,ff
可以是f2
或f3
或f4
,这取决于我如何调用控制台上的功能.理想情况下f2, f3, f4
计算矩阵.
使用下面的答案中的例子,我想知道为什么我不能这样做?
f1 <- function(a,b,ff(a,b))
{
solve(ff(a,b))
}
f2 <- function (x,y){
Diag(x*y)
}
Run Code Online (Sandbox Code Playgroud)
这是一个非常糟糕的例子.但我想知道为什么我不能在参数中包含ff(a,b)??? 写作的逻辑是什么?
f1 < - function(a,b,ff){ff(a,b)}
我有以下结构:
public class Object1{
private HashMap<Double, Node> myMap;
...
public void cancelItem(Item o) {
for(Map.Entry<Double, Node> nn: myMap.entrySet()) {
if(nn.getValue().containItem(o)) {
nn.getValue().cancelItemFromNode(o);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
和另一堂课
public class Node{
private HashMap<String,Item> itemIDHashMap;
public boolean containItemID(Item o) {
return itemIDHashMap.containsKey(o.getItemID());
}
public void cancelItemFromNode(Item o) {
if(itemIDHashMap.containsKey(o.getItemID())) {
itemIDHashMap.remove(o.getItemID());
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以,上面的代码做到这一点:无论何时Object1
的cancelItem
方法被调用时,它遍历的myMap
HashMap来找到一个Node
,它包含了另一个HashMap中itemIDHashMap
,并检查是否itemIDHashMap
包含相同的项目ID,如果确实如此,那么从删除的项itemIDHashMap
.
现在,从我的理解,因为我在myMap
不使用迭代器的情况下迭代hashmap 而我试图从hashmap中删除元素,为什么它不会ConcurrentModificationException
在运行时抛出?
更新:
道歉.我忘了澄清.我知道我实际上迭代一个散列图,但从另一个散列图中删除键值对.但是,在我上面的设计中,我相信我仍在修改内容Node
,它仍然是myMap
hashmap的一部分,因为我Item …
我想在字符串中识别出两种类型的模式.他们是:
1) xxx:xxxxxxx:xxx.xx
2) xxx.xxx.xxx.xx:xxxxxxxxxx
基本上我想知道如何识别"."
字符串中的文字.
既然.
意味着任何角色,我在寻找文字时应该输入什么"."
?
我有以下xts
对象作为数据并计算acf
返回以下错误消息。
> acf(data_series)
Error in round(frequency) : non-numeric argument to mathematical function
Run Code Online (Sandbox Code Playgroud)
数据系列如下:
structure(c(23081, 22739, 22725, 22472, 22956, 22900, 22662,
22575, 22238, 22241, 22308, 22173, 22302, 22247, 22362, 22640,
22609, 22611, 22761, 22805, 22815, 22875), index = structure(c(1478015096.961,
1478101498.038, 1478187898.982, 1478274298.736, 1478533498.701,
1478619898.962, 1478706297.971, 1478792699.88, 1478879098.9,
1479138297.291, 1479224698.879, 1479311099.631, 1479397499.52,
1479483899.146, 1479743097.896, 1479829497.495, 1479915896.634,
1480002297.653, 1480088688, 1480347899.956, 1480434296.234, 1480520699.948
), tzone = "", tclass = c("POSIXct", "POSIXt")), .indexCLASS = c("POSIXct",
"POSIXt"), .indexTZ = "", tclass = …
Run Code Online (Sandbox Code Playgroud) 可能重复:
你如何在R中使用"<< - "(作用域分配)?
我正在读一个伪代码.我<<-
多次遇到这个问题.有什么意义<<-
?这是什么意思?在使用<<-
运营商时我们需要考虑或注意什么?