在我的R生命早期,我发现R和Windows在目录和子目录之间的分隔符时位于不同页面上的痛苦.虽然我知道这个问题,但我还是手动不得不在我的所有反斜杠前放一个反斜杠或用正斜杠替换所有反斜杠.
我喜欢用我在计算机上运行的几个应用程序中的任何一个复制路径名或整个文件名(例如XYPlorer,Everything by voidtools),然后将其粘贴到Tinn-R中.无论如何,我可以自动执行我目前正在手动执行的任务.
那些不知道我在说什么的人的背景
从R for Windows FAQ,R-2.9.2版本,BD Ripley和DJ Murdoch引用
R字符串中的反斜杠必须加倍,例如,需要"d:\ R-2.9.2\library\xgobi\scripts\xgobi.bat"'.通过使用正斜杠作为路径分隔符,您可以让自己的生活更轻松:它们可以在Windows下运行
我在帖子中看到了以下函数,它允许用户使用通用表达式对数据进行排序:
public static IOrderedQueryable<T> OrderBy<T, TKey>(
this IQueryable<T> source, Expression<Func<T, TKey>> func, bool isDescending) {
return isDescending ? source.OrderByDescending(func) : source.OrderBy(func);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用这个函数时,我得到一个错误,说"找不到类型或命名空间名称"TKey'(你是否错过了使用指令或汇编引用?)".我在这里做了一些愚蠢的事情,但我可以弄明白了.
编辑:
在做了一些研究之后,我认为我的问题在于构建我传递给它的Expression.是否可以构建一个可以包含不同类型的表达式?假设我的数据集有一个字符串,一个int和一个bool,我想使用上面的泛型函数来排序任何项目.我该怎么做呢?
我现在有这个工作:
if (IsString)
{
Expression<Func<T, string>> expString = ...;
// call orderBy with expString
}
else if (IsInt)
{
Expression<Func<T, int>> expInt;
// call orderBy w/ expInt
}
:
Run Code Online (Sandbox Code Playgroud)
我想要的东西:
Expression<Func<T, {something generic!}>> exp;
if (IsString)
exp = ...;
else if (IsInt)
exp = ...;
:
// call orderBy with exp
Run Code Online (Sandbox Code Playgroud) 我有一个模型:
CAMPAIGN_TYPES = (
('email','Email'),
('display','Display'),
('search','Search'),
)
class Campaign(models.Model):
name = models.CharField(max_length=255)
type = models.CharField(max_length=30,choices=CAMPAIGN_TYPES,default='display')
Run Code Online (Sandbox Code Playgroud)
一个表格:
class CampaignForm(ModelForm):
class Meta:
model = Campaign
Run Code Online (Sandbox Code Playgroud)
有没有办法限制"类型"字段可用的选项?我知道我可以做一个单值字段:CampaignForm(initial={'name':'Default Name'})
但我找不到任何方法为选择集做这个.
使用嵌入式数据库的最佳方法是什么,比如Python中的sqlite:
用法不是网络应用程序.它是一个小型数据库,最多可容纳5个表.每个表中的数据只是几个字符串列.想想比腌制词典更大的东西
更新:非常感谢您提出的好建议.
我正在谈论的用例非常简单.你可能会在一两天内做一件事.
这是一个100行的Python脚本,它收集有关相对大量文件(比如10k)的数据,并创建关于它们的元数据文件,然后创建一个关于整个文件树的大型元数据文件.我只需要避免重新处理已经处理的文件,并为更新的文件创建元数据,并更新主元数据文件.在某种程度上,缓存已处理的数据,并仅在文件更新时更新它.如果缓存已损坏/不可用,则只需处理整个树.可能需要20分钟,但没关系.
请注意,所有处理都在内存中完成.
我想避免任何外部依赖,以便脚本可以很容易地放在任何系统上,只需要安装Python.作为Windows,有时很难安装所有组件.因此,在我看来,即使是数据库也可能是一种过度杀伤力.
您可能不会启动Office Word/Writer来编写一个小型的帖子类型注释,同样我不愿意使用像Django这样的用例.
从哪儿开始?
当我谈到脚本语言时,我说的是Python,Perl和(在我的例子中)PHP这样的语言.在使用CodeIgniter,Zend和许多其他有趣的MVC系统后,似乎很清楚,一个人似乎同意的一件事是文件夹结构(沿着与事物有关的东西).这对我来说真的是一个问题,因为我找不到任何关于不同结构设计的好处的好文档.大多数人只推荐一个,因为这是他们使用的,而不考虑设计的改进.
我希望我们都同意的一件事是在自动加载类时检查文件系统中的现有文件是非常糟糕的做法.我们的类不应该位于5个可能的位置之一,导致对我们加载的每个库进行一系列file_exists()检查.
所以无论如何,我正在尝试收集我可以比较的目录结构,以便在规划应用程序时找到最佳实践:
所以这就是我到目前为止所拥有的.请记住,libs只是一个术语,意味着您的主库/类目录,甚至可能包含模型,具体取决于文件夹结构.此外,我排除了任何类型的静态内容(JS/CSS /图像),因为这些内容实际上是经过深思熟虑而与我们的服务器代码无关 - 它甚至可能在另一台服务器上!缓存,文件上传,lang和所有其他生成的内容也是如此.
/controllers
/views
/models
/libs
/config
index.php
Run Code Online (Sandbox Code Playgroud)
这让我想起了Zend框架,它将所有内容都集成到一个libs文件夹中(其中还包含子文件夹以保持组织有序).仅适用于单个站点.
/libs
/site
/controllers
/views
/models
/config
index.php
Run Code Online (Sandbox Code Playgroud)
这将是上述结构的多站点版本.
/libs
/functions
/site
/controllers
/models
/views
/config
/site2
/controllers
/models
/views
/config
/modules
/user
/controllers
/models
/views
index.php
Run Code Online (Sandbox Code Playgroud)
这将是允许多个站点和插入模块的版本.这些模块将是自包含的MVC应用程序,如论坛,其中包括业务逻辑,CRUD和视图.
那么,是否有人有一个完美的结构,他们可以分享或指导我选择一个良好的可扩展设计?
我们有一个 WinForms 应用程序,它使用 SQL Server 来存储其数据。为了对应用程序用户进行身份验证,我们使用 SQL Server 进行身份验证。用户必须拥有数据库服务器上存在的用户名/密码才能登录。
到目前为止,一切都很好。
现在我们的一位客户希望我们实现单点登录。他们希望能够在不输入任何用户名/密码的情况下启动我们的应用程序,他们希望使用 Windows 来验证用户身份。
您对我们如何实现这一目标有什么建议吗?
如果我有这样的代码:
string s = MyClass.GetString(); // Returns string containing "hello world";
ProcessString(s);
Run Code Online (Sandbox Code Playgroud)
这比这慢吗?
ProcessString(MyClass.GetString());
Run Code Online (Sandbox Code Playgroud)
如果是这样,为什么?在第二个例子中,编译器通常是从GetString()生成一个变量; 返回字符串的方法?
另外,尽可能晚地声明变量有什么好处?这对GC有益吗?如果是这样,我如何(我假设GC gens)?
谢谢
嗨,我有以下程序.当我在终端gcc main.c上编译时,我得到一个名为a.out的可执行文件.但是,如果我在终端中键入a.out,我会收到以下消息:a.out:command not found
关于我可能做错的任何想法?
#include <stdio.h>
#include <stdlib.h>
#define PROMPT "print something"
/*
*
*/
int main() {
printf("CS-xxx Assignment x, xxxxx\n");
printf(PROMPT);
return (EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud) 我有一个我无法直接访问的ASP.NET服务器.如何编写.NET应用程序,以编程方式确定ASP.NET是否运行32位与64位?
我定义了以下类来进行验证:
public class DefValidator : IValidate<IDef>
{
}
public interface IDef : IAttribute
{
}
Run Code Online (Sandbox Code Playgroud)
然后,我有一个定义如下的验证器列表:
IList<IValidate<IAttribute>> ValidationObjects;
Run Code Online (Sandbox Code Playgroud)
当我尝试以下内容时,它不会编译说它无法转换类型.
DefValidator defv = new DefValidator();
ValidationObjects.Add(defv);
Run Code Online (Sandbox Code Playgroud)
当我尝试以下操作时,它会编译但会生成一个异常,说"无法投射对象".
ValidationObjects.Add((IValidate<IAttribute>)defv);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?