在这里,我创建一个新列,以指示myData是高于还是低于其中位数
### MedianSplits based on Whole Data
#create some test data
myDataFrame=data.frame(myData=runif(15),myFactor=rep(c("A","B","C"),5))
#create column showing median split
myBreaks= quantile(myDataFrame$myData,c(0,.5,1))
myDataFrame$MedianSplitWholeData = cut(
myDataFrame$myData,
breaks=myBreaks,
include.lowest=TRUE,
labels=c("Below","Above"))
#Check if it's correct
myDataFrame$AboveWholeMedian = myDataFrame$myData > median(myDataFrame$myData)
myDataFrame
Run Code Online (Sandbox Code Playgroud)
工作良好.现在我想做同样的事情,但计算myFactor每个级别的中位数分割.
我想出来了:
#Median splits within factor levels
byOutput=by(myDataFrame$myData,myDataFrame$myFactor, function (x) {
myBreaks= quantile(x,c(0,.5,1))
MedianSplitByGroup=cut(x,
breaks=myBreaks,
include.lowest=TRUE,
labels=c("Below","Above"))
MedianSplitByGroup
})
Run Code Online (Sandbox Code Playgroud)
byOutput包含我想要的东西.它正确地对因子A,B和C的每个元素进行分类.但是我想创建一个新列myDataFrame $ FactorLevelMedianSplit,它显示新计算的中值分割.
如何将"by"命令的输出转换为有用的数据框列?
我想也许"by"命令不是R-like方式来做这个...
更新:
有了Thierry如何巧妙地使用factor()的例子,并且在Spector的书中发现了"ave"函数,我发现了这个解决方案,它不需要额外的包.
myDataFrame$MediansByFactor=ave(
myDataFrame$myData,
myDataFrame$myFactor,
FUN=median)
myDataFrame$FactorLevelMedianSplit = factor(
myDataFrame$myData>myDataFrame$MediansByFactor,
levels = c(TRUE, FALSE),
labels = c("Above", "Below"))
Run Code Online (Sandbox Code Playgroud) 在ghci中使用hoogle时如何使用hoogle命令行标志?
这显然不起作用:
ghci> :hoogle --count=5 Char -> Int
Could not read as type Int, "5 Char -> Int"
Run Code Online (Sandbox Code Playgroud) 当BigInteger a某些人检查可分性时BigInteger b,我可以写a.mod(b).equals(BigInteger.ZERO)或者a.remainder(b).equals(BigInteger.ZERO).
哪两个表达式更有效?
编辑:有几个人正确地指出mod不接受负模数.请假设b您的答案是肯定的.
我想编写一个类似于List.concat/1的函数,它接受一个列表的可枚举,并将连接列表作为连续流发出.
它会像这样工作:
iex> 1..3 |> Stream.map(&([&1])) |> Enum.to_list
[[1], [2], [3]]
iex> 1..3 |> Stream.map(&([&1])) |> MyStream.concat |> Enum.to_list
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
到目前为止我得出的是:
defmodule MyStream do
def concat(lists) do
Enumerable.reduce(lists, [], fn(x, acc) -> acc ++ x end)
end
end
Run Code Online (Sandbox Code Playgroud)
这会产生正确的结果,但显然不是懒惰的.
我尝试使用Stream.Lazy但未成功但却无法理解它的内部工作原理.任何解释Stream.Lazy都将非常感谢!
如果调用的Stack Haskell项目MyProject包含以下模块:
src\
Foo1
Foo2
Bar\
Foo3
Run Code Online (Sandbox Code Playgroud)
我想在所有模块名称中添加项目前缀,以帮助我将其与其他软件包中的其他导入模块区分开来,例如 MyProject.Bar.Foo3
我知道我可以的内容移动src到一个文件夹MyProject,然后前缀所有的模块MyProject.,但有没有办法与阴谋的文件要做到这一点,例如project-prefix=MyProject,或者其他的解决方案,这将使我同样的效果,而无需进行重组项目文件?
核心数据类型Data.ByteString.Builder是
newtype Builder = Builder (forall r. BuildStep r -> BuildStep r)
type BuildStep a = BufferRange -> IO (BuildSignal a)
data BuildSignal a =
Done {-# UNPACK #-} !(Ptr Word8) a
| BufferFull
{-# UNPACK #-} !Int
{-# UNPACK #-} !(Ptr Word8)
(BuildStep a)
| InsertChunk
{-# UNPACK #-} !(Ptr Word8)
S.ByteString
(BuildStep a)
Run Code Online (Sandbox Code Playgroud)
类型参数(r或a)用于什么目的?
有没有办法为特定的包构建 haddock 文档?我正在尝试单独为我的包/应用程序构建 haddocks,但以下命令似乎也为所有依赖项执行此操作:
stack haddock webservice
Run Code Online (Sandbox Code Playgroud)
(webservice我的包/应用程序的名称在哪里)
我刚刚完成了霍夫曼压缩算法的创建。我使用 bytearray() 将压缩文本从字符串转换为字节数组。我正在尝试解压缩我的霍夫曼算法。但我唯一担心的是我无法将字节数组转换回字符串。是否有任何内置函数可以用来将我的字节数组(带有变量)转换回字符串?如果没有,是否有更好的方法将我的压缩字符串转换为其他内容?我尝试使用 byte_array.decode() 并得到以下结果:
print("Index: ", Index) # The Index
# Subsituting text to our compressed index
for x in range(len(TextTest)):
TextTest[x]=Index[TextTest[x]]
NewText=''.join(TextTest)
# print(NewText)
# NewText=int(NewText)
byte_array = bytearray() # Converts the compressed string text to bytes
for i in range(0, len(NewText), 8):
byte_array.append(int(NewText[i:i + 8], 2))
NewSize = ("Compressed file Size:",sys.getsizeof(byte_array),'bytes')
print(byte_array)
print(byte_array)
print(NewSize)
x=bytes(byte_array)
x.decode()
Run Code Online (Sandbox Code Playgroud)
UnicodeDecodeError:“utf-8”编解码器无法解码位置 0 中的字节 0x88:起始字节无效
我刚刚参加了Tour of Go中的练习51.该解释声称该Scale方法在接收到Vertex而不是指向a的指针时没有效果Vertex.
然而,当我改变声明v := &Vertex{3, 4},以v := Vertex{3, 4}在main输出唯一的变化是丢失的&标记指针.
那么为什么Scale即使变量不是指针也改变它收到的变量?
haskell ×5
arrays ×1
biginteger ×1
bytestring ×1
compression ×1
dataframe ×1
elixir ×1
ghci ×1
go ×1
haddock ×1
hoogle ×1
huffman-code ×1
java ×1
median ×1
methods ×1
pointers ×1
python ×1
r ×1
stream ×1